23 октября 2010

Vehicle 2, Box2d

В качестве продолжения этого отдыха, решил сделать вторую демонстрационную программу для показа замечательности связки Delphi+Box2d. Вторая демка вышла чем-то проще первой, хотя в чем-то, наоборот, и посложнее. В общем, об этом и можно прочесть в нижеследующем сообщении.
Итак, теперь вид сверху, четыре колеса-прямоугольника и сложная система трения. Получилось что-то вроде такого:

Исходники + ехе качать отсюда. Все как обычно: несколько папок для разных целей (система разнесения src/dcu/exe/prj зарекомендовала пока себя на отлично); исходники в src не отличаются от тех, что находятся в первой демке, но все же я решил приложить их и сюда - пара килобайт, а от скольких хлопот может избавить! Если посмотреть какими-нибудь Text Comparison программами, то будет видно, что в главном модуле проекта изменились только вещи, связанные с созданием физических объектов, добавлением сочленений и реакцией на клавиши. Все, что касается графики, апдейта физики, формы и дополнительных компонент - неизменно. Кстати, демо может послужить примером создания в run-time самого необходимого набора GlScene-объектов.
Что стало проще при переходе на вид сверху? На машину теперь всего пять тел-прямоугольников  (корпус машины + 4 колеса, расположение которых тривиально), а также всего четыре сочленения (два Revolute-сочленения на передние колеса и 2 Prismatic-сочленения для блокировки задних колес).
Что стало сложнее? Из-за отсутствия гравитации, происходит скольжение объектов по экрану без трения. Для рассеяния энергии пришлось вручную применять силу трения. Причем на колеса ее пришлось раскладывать по двум составляющим (нормальной и тангенциальной) для более реалистичного поведения автомобиля. Хотя последнее не очень удалось, но все же мне такое управление больше нравится, чем в том туторе, что я приводил в прошлом сообщении. Конечно, есть куда стремиться - можно добиться более эффектных дрифтов, грамотной симуляции различных передач и другого.
Опять же для подтверждения обилия готовых изображений для нелегального использования в играх, привожу картинки, которые выдает google за пять минут:
Так что осталось только привязать графику к физике, построить несколько трасс, написать вменяемый ИИ, добавить звуков, подобрать саундтреки, проработать систему частиц и спецэффектов, реализовать красивый ГУИ, прикрутить ко всему этому систему повреждений авто, раскидать бонусы, продумать лестницу апгрейдов, влить в игру драйвовый геймплей и можно выставлять на конкурс!
Ясно, что в Интернет всех привлекают красивые картинки, видео и т.д... поэтому и я залил одно, чтобы вы смогли с радостью убить полминуты своего драгоценного времени, просматривая это:
Вот как-то так! опять же надеюсь, что кому-то все это пригодится...
Кстати, вчера вечером нашел, что существует почти официальный порт для Box2d, который выложили где-то в апреле. Здорово, что могу сказать! Тем более, что он уже заточен под версию библиотеки 2.1.0.Кстати, в той теме уже отметился mm_ash; когда-то давно на базе его порта я доделывал dll под себя.

Сообщения, схожие по тематике:

5 коммент.:

  1. Анонимный15 июля 2011 г., 18:25

    Спасибо! Как раз то, что нужно!

    ОтветитьУдалить
  2. спасибо, пригодится!!

    ОтветитьУдалить
  3. De:Light,
    благодарю! поправил!
    у меня раньше не было нормального хостинга, поэтому я использовал fileave, а он видимо накрылся не так давно)) поэтому я перенес все на code.google!

    ОтветитьУдалить