|
16.01.2012, 11:22
|
#1
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Вопрос про пошаговость...
Добрый день.
Решил попробовать сделать простенькую пошаговую стратегию, приготовил модельки, камеру, движение, стрельбу и т.п., но никак не смог придумать алгоритм отображения на террайне гексагонов или квадратов, по которым могли бы перемещаться юниты. Полистал примеры и страницы - не отыскал.
Единственной идеей стало засеивание террайна Pivot'ами... Но это, скорее всего, не выход.
Прошу знатоков подсказать, с помощью чего делается требуемое, или же ткнуть, где лежит пример.
|
(Offline)
|
|
16.01.2012, 12:33
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Вопрос про пошаговость...
обычно это делается текстурой с нарисованной сеткой, накладываемой вторым слоем.
З.Ы. недумали ник по-проще сделать?
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.01.2012, 13:12
|
#3
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Сообщение от SBJoker
обычно это делается текстурой с нарисованной сеткой, накладываемой вторым слоем.
З.Ы. недумали ник по-проще сделать?
|
Хм, про вторую текстуру я как-то не допетрил... Спасибо.
Тогда второй вопрос: положил вторую текстуру с квадратами, а теперь мне надо, чтобы юнит двигался только через стороны квадрата, а не пересекал их по кратчайшему расстоянию. Это делается по типу вейпоинтов? Или есть иные способы?
Ник, конечно же, надо другой Но, видимо, я настолько слоупок, что в личном кабинете не нашёл этой опции
|
(Offline)
|
|
16.01.2012, 14:03
|
#4
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Вопрос про пошаговость...
От центра одного квадрата до центра другого квадрата, который соседний с первым, полюбому путь будет проходить посредине через грань
|
(Offline)
|
|
16.01.2012, 14:36
|
#5
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Сообщение от Dream
От центра одного квадрата до центра другого квадрата, который соседний с первым, полюбому путь будет проходить посредине через грань
|
так, уже яснее, спасибо Только непонятно пока, что может являться центром квадрата?
|
(Offline)
|
|
16.01.2012, 15:12
|
#6
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос про пошаговость...
А зачем в игру, где все изначально создается не по сетке, вводить ее для персонажей?
|
(Offline)
|
|
16.01.2012, 16:03
|
#7
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Сообщение от FireOwl
А зачем в игру, где все изначально создается не по сетке, вводить ее для персонажей?
|
эмм... можно тогда хотя бы словесный алгоритм создания сетки и привязки к ней объектов? Как бы в двиге я нуб, и делать, наверно, не с того начал...
|
(Offline)
|
|
17.01.2012, 15:18
|
#8
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Полистал темы в других редакторах, нашёл идею - создание плоскости и разбивка её на квадраты. Кто-нибудь может рассказать подробнее, какими командами производить разбивку и как располагать разбитую на квадраты плоскость на ландшафте?
|
(Offline)
|
|
17.01.2012, 15:51
|
#9
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Вопрос про пошаговость...
width - количество клеток в ширину
height - количество клеток в высоту (глубину).
Function CreatePlane2 (width=1,height=1)
mesh = CreateMesh ()
surface=CreateSurface (mesh)
For z=-width/2 To width/2
u#=z/Float (width)*20
For x=-height/2 To height/2
v#=x/Float (height)*20
vx=AddVertex (surface,x*2.0,0,z*2.0,u,v)
Next
Next
For z=0 To height-1
For x=0 To width-1
start = x+z*(width+1)
v0=start
v1=start+1
v2=start+(width+1)
v3=start+(width+1)+1
AddTriangle surface,v2,v1,v0
AddTriangle surface,v2,v3,v1
Next
Next
Return mesh
End Function
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.01.2012, 16:05
|
#10
|
Разработчик
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений (для 1,072 пользователей)
|
Ответ: Вопрос про пошаговость...
Да в принципе пофиг на модельку поверхности и пофиг какими методами ее делать. Главное что юниты будут перемещатся по координатам (сетка квадратная, то есть X и Y) - тут все просто. А положение модельки юнита считаешь от масштаба, например если клетка размером 10х10, то значит реальные координаты юнита будут типа того:
x=unit\x*10+5
y=unit\y*10+5
PositionEntity unit\entity,x,0,y
Unit - это тип с информацией о юнитах, +5 для того чтобы юнит был всегда посередине клетки (если поле начинается с координат 0,0)
В данном случае модель террейна можно брать любую, а можно и вообще без нее))
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.01.2012, 19:25
|
#11
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Не понимаю
сделал так:
CreatePlane2#() ;то есть вызвал функцию
Global amount = 5
For i = 0 To amount
tank.tank_platform = New tank_platform
tank\tank_model = LoadAnimMesh("..\..\..\media\textures\123.fbx") ; создал танк
tank\tank_chassi = xFindChild(tank\tank_model, "platform001")
rx=rx+40 ; размещаю его в мире
x# = 10+rx
z# = 50
PositionEntity(tank\tank_model, x,90, 100)
MoveEntity(tank\tank_model, 40, 0,0)
А как разместить/привязать его по/к сетке? перебирать вертексы и от них как-то отталкиваться?
Делать EntityParent? Да вроде без толку... Поверхности доходят до меня медленнее, чем типы
|
(Offline)
|
|
17.01.2012, 19:33
|
#12
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос про пошаговость...
А зачем его как-то по особому привязывать?
Танк размещен в координатах ячейки, все хорошо.
В любой момент можно по координатам танка вычислить и положение ячейки.
|
(Offline)
|
|
17.01.2012, 20:18
|
#13
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Сообщение от FireOwl
А зачем его как-то по особому привязывать?
Танк размещен в координатах ячейки, все хорошо.
В любой момент можно по координатам танка вычислить и положение ячейки.
|
ага... то есть мы берём EntityX, У и Z танка, а потом VertexX или TriangleVertex? то есть через взятые точки треугольника мы вычисляем, что танк между ними и его уже окончательно позиционируем как надо?
Или я не так понял "вычислить и положение ячейки"?
|
(Offline)
|
|
17.01.2012, 20:50
|
#14
|
Бывалый
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений (для 1,836 пользователей)
|
Ответ: Вопрос про пошаговость...
Задача - разместить юнитов по клеткам?
Можно представить, что существует некая сетка,
середина нулевой ячейки - в координатах (0,0), а далее каждая воображаемая ячея занимает приблизительно 10 на 10 едениц (в чем там пространство трехмерное меряют).
Есть танк. Его надо поставить в ячейку (4,-2). Например.
Берем и через PositionEntity ставим его в такие координаты:
(x*width; y*height), где width и height - ширина и высота клеток.
(4*10; -2*10)
т.е.
(40, -20)
Готово. Танк в ячейке.
Обратный процесс обратен.
Есть танк, который болтается в мировом пространстве по координатам (-100, 40), например.
Берем и вычисляем, что это за ячейка:
(x/width; y/height)
(-10, 4)
А террайн, вместе с приляпаной к нему текстурой сетки, служит задником для математики.
Чисто для красоты и удобства зрителей.
Зачем привязывать модели танков к модели террайна?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.01.2012, 21:33
|
#15
|
Оператор ЭВМ
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос про пошаговость...
Спасибо большое! логика стала понятной
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:20.
|