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

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

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

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 20.01.2011, 00:46   #31
turBO
ПроЭктировщик
 
Аватар для turBO
 
Регистрация: 02.03.2007
Сообщений: 194
Написано 65 полезных сообщений
(для 168 пользователей)
Ответ: Реализация поезда

Над проблемами движения локомотивов и вагонов по рельсам, следованию вагонов за поездом и пр. бился достаточно долго. Переходил от одной реализации к другой.
Остановился на таком варианте (в 3d-пространстве). Ж\д-полотно - это набор геометрических точек, т.е. цепочек объектов. Отдельные цепочки связаны между собой т.н. узлами или "стрелками".
Локомотив располагается в n-ую точку цепи и начинает движение к следующей точке. Приращение может быть как положительным, так и отрицательным. Движется он к следующей n+1 или n-1 точке в цепи. Но, как верно отметил Pax, у поезда 2 пары тележек, т.е. два центра вращения. Соответственно, мы движем набор из двух тележек с фиксированным расстоянием и определяем координаты x,y,z средней точки между ними (на примере blitz3d).

mid_x#=EntityX(e1)+(EntityX(e2)-EntityX(e1))/2
mid_z#=EntityZ(e1)+(EntityZ(e2)-EntityZ(e1))/2
mid_y#=EntityY(e1)+(EntityY(e2)-EntityY(e1))/2

В точку с такими координатами помещаем модель нашего поезда. Ландшафт может иметь подъёмы, спуски, поэтому помещать модель в эту точку при движении будет правдоподобнее. Далее определяем разницу углов между следующей рельсой и поездом.

dy#=DeltaYaw(r\ent,tr\ent)
dp#=DeltaPitch (r\ent,tr\ent )

и постепенно уменьшаем вращением модели эту разницу - поезд будет входить в повороты, плавно спускаться с гор и пр.
Итак, последовательность всех колёсных тележек поезда и вагонов - это своего рода змейка. Тут всё просто - движем каждую тележку с одинаковой скоростью и вагоны покатятся следом за локомотивом (каждая из них будет в точности повторять траекторию движения предыдущей).

Это вкратце.
__________________
— Скажи мне, что это не бомба.
— Хорошо. Это котенок. Замечательный взрывной котенок.
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо turBO за это полезное сообщение:
ABTOMAT (20.01.2011), Артем Валерьевич (20.01.2011), CRASHER (30.01.2011), maxturbo (20.01.2011), pax (20.01.2011), Reks888 (21.01.2011)
Ответ


Опции темы

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

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


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


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