forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Реализация поезда (http://forum.boolean.name/showthread.php?t=14054)

Nazgul 14.01.2011 10:25

Реализация поезда
 
Здравствуйте! Нужно сделать поезд, движущийся по рельсам, которым можно было бы свободно управлять - задавать направление движения, скорость и т.п.
Не знаю, как заставить вагоны следовать в точности один за другим. Подскажите:)

SBJoker 14.01.2011 13:21

Ответ: Реализация поезда
 
Ну как минимум каждому вагону знать своего ведущего вагона, и повторять всё за ним.

pax 14.01.2011 14:14

Ответ: Реализация поезда
 
Возможно стоит спросить автора вот этой игры http://forum.boolean.name/showthread.php?t=13482
Задачка конечно интересная...

HolyDel 14.01.2011 18:31

Ответ: Реализация поезда
 

чот из-за названия топика вспомнилось это: http://www.everfall.com/paste/id.php?wfo39jw2bbh7

Randomize 14.01.2011 18:46

Ответ: Реализация поезда
 
Эх. Что такое поезд? Это змейка!!! Пишем змейку

Igor 14.01.2011 19:18

Ответ: Реализация поезда
 
Цитата:

Ну как минимум каждому вагону знать своего ведущего вагона, и повторять всё за ним.
Если мало вагонов.
Если много, то знать расстояниие от каждого из вагонов до паровоза и его (паровоза) пройденную траекторию.

SBJoker 14.01.2011 19:58

Ответ: Реализация поезда
 
Непори чушь, каждый вагон в непосредственой близости от "родительского", причём тут число?каждому следующему вагону нужно проехать там де и с той же скоростью что и предыдущий вот и всё...

pax 14.01.2011 20:00

Ответ: Реализация поезда
 
Тут еще надо попасть колесами в рельсы и в соединительные звенья...

SBJoker 14.01.2011 20:06

Ответ: Реализация поезда
 
наверное мы думаем на разных языках.... точнее я на языке, а вы на блоках.

Evgen 14.01.2011 20:19

Ответ: Реализация поезда
 
Я думаю что первым делом, нужно научится елозить вагон по рельсам вперед/назад на какое нибудь расстояние. Ну там по кривой какой-нибудь, по прямой конечно легче.(Как вы это будете делать я не знаю).А дальше уже проще:

Простая но дубовая версия:
Двигаем локомотив синхронно с вагонами.
1вагон стоит на расстоянии 10 метров от локомотива, 2 на расстоянии 20 метров, 3ий 30 и т.д. Если передвинули локомотив на 3 метра вперед, автоматический двигаем все вагоны на 3 метра вперед. Вагоны и поезд будут двигаться синхронно.

Сложная версия:
Если локомотив(тот который тянет вагоны) на большом расстоянии от 1-ого вагона, то вагон подтягиваем к локомотиву. Если 1-ый вагон слишком близко к локомотиву, отгоняем его назад от локомотива. Таким способом при каждом Update сканируем весь поезд от первого вагона к последнему. Замеряя расстояния между локомотивом и 1 вагоном, потом между 1 вагоном и 2 вагоном, 2 и 3 и т.д. до конца. Можно подтягивать вагоны постепенно за несколько Update() чтобы создать иллюзию растягивания(при разгоне)/сжатия(при тормозе) состава.
Тогда если вы будите двигать локомотив, то вагоны будут выстраиваться за ним.

Не забывайте что вагоны и поезд должны быть как-то привязаны к рельсам. То есть вправо и влево сползать нельзя, только вперед/назад по проложенной колее. Как вы будете это делать не знаю.

Я думаю как-то так.

Igor 14.01.2011 21:02

Ответ: Реализация поезда
 
Никто не проникся моей идеей(
Есть паровоз, линия его траектории и у каждого вагона расстояние до паровоза.
Перемещаем паровоз куда нам надо, потом все вагоны ставим на линию его траектории каждый на заданном расстоянии от паровоза.

pax 14.01.2011 21:15

Ответ: Реализация поезда
 
Цитата:

Сообщение от Igor (Сообщение 175621)
Никто не проникся моей идеей(
Есть паровоз, линия его траектории и у каждого вагона расстояние до паровоза.
Перемещаем паровоз куда нам надо, потом все вагоны ставим на линию его траектории каждый на заданном расстоянии от паровоза.

А колеса в рельсы попадут? У каждого вагона 2 пары колес. На кривой траектории центр вагона будет лежать не на траектории. И место сочленения вагонов - тоже.

Reizel 14.01.2011 22:15

Ответ: Реализация поезда
 
в принципе, смотря как реализованы рельсы. Можно в принципе иметь скорость состава, и прибавлять ее к переменной l в типе Train. Потом нужно получать для каждого вагона его поворот и позицию через функцию, которая берет эту самую L, и возвращает их.

Походу это полная чушь, ибо послезавтра экзамен по вышке, и f(x) мой мозг пропитан :)

Igor 14.01.2011 23:16

Ответ: Реализация поезда
 
Путь можно представить как одну кривую (ломаную) между рельсами. Вагон имеет две тележки, которые едут по рельсам. Эти две тележки можно представить как две точки, которыми вагон стоит на кривой.

Моя предыдущая идея подходила только для движения по траектории, близкой к прямой((

pax 14.01.2011 23:33

Ответ: Реализация поезда
 
Чем гадать, надо сначала познакомиться с устройством поезда ИМХО.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot