Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 16.01.2012, 11:22   #1
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос про пошаговость...

Добрый день.

Решил попробовать сделать простенькую пошаговую стратегию, приготовил модельки, камеру, движение, стрельбу и т.п., но никак не смог придумать алгоритм отображения на террайне гексагонов или квадратов, по которым могли бы перемещаться юниты. Полистал примеры и страницы - не отыскал.
Единственной идеей стало засеивание террайна Pivot'ами... Но это, скорее всего, не выход.
Прошу знатоков подсказать, с помощью чего делается требуемое, или же ткнуть, где лежит пример.
(Offline)
 
Ответить с цитированием
Старый 16.01.2012, 12:33   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос про пошаговость...

обычно это делается текстурой с нарисованной сеткой, накладываемой вторым слоем.

З.Ы. недумали ник по-проще сделать?
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Krep_Kospit (17.01.2012)
Старый 16.01.2012, 13:12   #3
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос про пошаговость...

Сообщение от SBJoker Посмотреть сообщение
обычно это делается текстурой с нарисованной сеткой, накладываемой вторым слоем.

З.Ы. недумали ник по-проще сделать?
Хм, про вторую текстуру я как-то не допетрил... Спасибо.

Тогда второй вопрос: положил вторую текстуру с квадратами, а теперь мне надо, чтобы юнит двигался только через стороны квадрата, а не пересекал их по кратчайшему расстоянию. Это делается по типу вейпоинтов? Или есть иные способы?

Ник, конечно же, надо другой Но, видимо, я настолько слоупок, что в личном кабинете не нашёл этой опции
(Offline)
 
Ответить с цитированием
Старый 16.01.2012, 14:03   #4
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Вопрос про пошаговость...

От центра одного квадрата до центра другого квадрата, который соседний с первым, полюбому путь будет проходить посредине через грань
(Offline)
 
Ответить с цитированием
Старый 16.01.2012, 14:36   #5
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос про пошаговость...

Сообщение от Dream Посмотреть сообщение
От центра одного квадрата до центра другого квадрата, который соседний с первым, полюбому путь будет проходить посредине через грань
так, уже яснее, спасибо Только непонятно пока, что может являться центром квадрата?
(Offline)
 
Ответить с цитированием
Старый 16.01.2012, 15:12   #6
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопрос про пошаговость...

Сообщение от [email protected] Посмотреть сообщение
Ник, конечно же, надо другой Но, видимо, я настолько слоупок, что в личном кабинете не нашёл этой опции
Запости сюда заявку: http://forum.boolean.name/showthread.php?t=4658&page=6


А зачем в игру, где все изначально создается не по сетке, вводить ее для персонажей?
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 16.01.2012, 16:03   #7
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос про пошаговость...

Сообщение от FireOwl Посмотреть сообщение
А зачем в игру, где все изначально создается не по сетке, вводить ее для персонажей?
эмм... можно тогда хотя бы словесный алгоритм создания сетки и привязки к ней объектов? Как бы в двиге я нуб, и делать, наверно, не с того начал...
(Offline)
 
Ответить с цитированием
Старый 17.01.2012, 15:18   #8
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос про пошаговость...

Полистал темы в других редакторах, нашёл идею - создание плоскости и разбивка её на квадраты. Кто-нибудь может рассказать подробнее, какими командами производить разбивку и как располагать разбитую на квадраты плоскость на ландшафте?
(Offline)
 
Ответить с цитированием
Старый 17.01.2012, 15:51   #9
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Krep_Kospit (17.01.2012)
Старый 17.01.2012, 16:05   #10
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 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)

В данном случае модель террейна можно брать любую, а можно и вообще без нее))
__________________
galaxies.su | dstalk.ru
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Krep_Kospit (17.01.2012)
Старый 17.01.2012, 19:25   #11
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 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
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопрос про пошаговость...

А зачем его как-то по особому привязывать?
Танк размещен в координатах ячейки, все хорошо.
В любой момент можно по координатам танка вычислить и положение ячейки.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 17.01.2012, 20:18   #13
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос про пошаговость...

Сообщение от FireOwl Посмотреть сообщение
А зачем его как-то по особому привязывать?
Танк размещен в координатах ячейки, все хорошо.
В любой момент можно по координатам танка вычислить и положение ячейки.
ага... то есть мы берём EntityX, У и Z танка, а потом VertexX или TriangleVertex? то есть через взятые точки треугольника мы вычисляем, что танк между ними и его уже окончательно позиционируем как надо?
Или я не так понял "вычислить и положение ячейки"?
(Offline)
 
Ответить с цитированием
Старый 17.01.2012, 20:50   #14
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 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)

А террайн, вместе с приляпаной к нему текстурой сетки, служит задником для математики.
Чисто для красоты и удобства зрителей.
Зачем привязывать модели танков к модели террайна?
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Krep_Kospit (17.01.2012)
Старый 17.01.2012, 21:33   #15
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос про пошаговость...

Спасибо большое! логика стала понятной
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:44.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com