20 октября 2010

Отдыхаем с Box2d...

Всем привет!
если честно, всё ленюсь описать демки про Lua... но ничего, надеюсь скоро выложу продолжение! А пока, на glscene.ru завершился конкурс "RTS/TBS", в котором, к сожалению, не удалось поучаствовать... В общем, с пылу с жару, все участники форума устремились обсуждать новую тему для конкурса. И я решил отдохнуть, попробовав написать маленькую демо.


Поэтому, чтобы позабавить народ, я решил накидать программку с колёсным агрегатом! Вообще, у меня недавно была мысль реализовать в качестве демонстрационных программ различные транспортные средства (мотоцикл, автомобиль, танк и т.д.) с использованием GlScene + Box2d.
Тем более, что у меня в закладках лежит ссылка на тутор по созданию двух машинок. Правда там на флеше делается, но не в этом суть. Главное - наглядный пример.
Вот и я, посидев вечерок, набросал похожую штуковину:
Получилось вроде нормально, поэтому я выложил исходник здесь. Возможно, кому-то пригодится. На самом деле debug-отрисовку для Box2d добавил только вчера, чтобы не напрягаться по поводу графики (модуль uBox2dGLDebug). Поэтому там так все сыро.
Вообще, этот пример решил сделать как старт для демонстрации того, что умеет Box2d. Я так понял, что на glscene.ru в данный момент вообще никто не занимается этим движком, поэтому и хочу показать, как можно быстро и легко сделать что-то интересное! Да и свет клином не сошелся на 3d... Ведь найти красивую картинку вроде таких:




намного проще, чем найти или (упаси Господь!) замоделить самому 3d-модель машинки!
А пока я все это писал, залилось видео на youtube... прощу прощения за качество, но все же:
Ну вот, будем считать, что в журнал отписался, и это здорово!

p.s. кстати, никто не подскажет, как сделать так, чтобы картинки не выстраивались в одну вертикальную линию?

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

8 коммент.:

  1. а как прицепить box2d к Delphi 7?

    ОтветитьУдалить
    Ответы
    1. в каком смысле? демка сделана на D7, или ты хочешь подключить какой-то другой бокс?

      Удалить
  2. я имею ввиду как любой движок типа box2d или popcap framework 1.3 подцепить к delphi 7? (ну как библиотеку что ли)

    ОтветитьУдалить
    Ответы
    1. я подцепил бокс через обычную dll...
      то есть с помощью СИ я выгрузил в dll основные функции бокса, а в D7 создается хедер для уже готовой dll.
      такая связка: выгрузка в dll + хедер в Delphi + импорт dll в Delphi называется "порт".
      если взять другие более-менее известные физические движки (ODE, Newton, Chipmunk) - так делают все.
      Но! У box2d наиболее долгая и сложная история, и сейчас один энтузиаст с нуля переписал исходный код на Delphi! Такой метод называется "трансляция". Исходный код этой версии box2d можно найти на форуме официального сайта.

      Удалить
  3. эт я понял но блин у меня не получается прицепить пробовал через и 8 и 10 версию visual studio (( слышал нужна прога cmake 2.8 чтобы скомпилить файл .lib а потом его уже прикреплять, но ни фига не получается,сможешь мне скинуть как привязать и скомпилить эти файлы, очень сильно прошу, буду благодарен)))

    ОтветитьУдалить
    Ответы
    1. я компилил в Express
      никаких дополнительных штук не ставил...
      прости, я не понял, что именно тебе скинуть?

      Удалить
  4. скинь скомпилированные файлы или напиши подробнее как это сделать))

    ОтветитьУдалить
    Ответы
    1. возможно, я туплю, но я все равно не пойму, что ты имеешь ввиду.

      если ты про dll и хедер, то можно все разом скачать по ссылке
      http://glvehicles.googlecode.com/files/vehicles%2C%20demo-1.rar

      или же скачать самую актуальную версию из репозитория:
      http://lampogolovii.blogspot.ru/2010/12/glvehicle-svn.html

      вот те же файлы из репо напрямую:
      http://code.google.com/p/glvehicles/source/browse/trunk/prj/dll/b2Physics.dll
      http://code.google.com/p/glvehicles/source/browse/trunk/src/b2Physics.pas

      вообще, можешь глянуть больше демок по ярлыку:
      http://lampogolovii.blogspot.ru/search/label/glvehicles

      если я не то написал - сообщи, я попробую еще что-нибудь придумать!

      Удалить