12 ноября 2010

glVehicles - завел svn на google.

Йе-х-у! Всем привет!
Открыл репозиторий под демонстрационные программы с 2д-физикой от Box2d. В итоге, я надеюсь, в них любой желающий найдет для себя интересные физичные механизмы, сможет изучить код моей связки GlScene + Box2d, а также посмотреть на развитие демок как таковых. Open source, в общем :)


Почему вдруг решил обернуть маленькие демки в целый svn? Все началось с того, что я вносил небольшие изменения в проекты "Vehicles" (TestCar-1, TestCar-2), а также начал делать третью демку. В общем, пока я ковырялся с этим, чуточку здесь подправил, чуточку там - ну знаете, как это бывает. В итоге решил все-таки обзавестись репозиторием под эти демки, так должно быть проще. Хотя, думаю, исходники особо смотреть все-равно никто не будет. Но это и не важно, мне самому проще программировать, когда можно быстро посмотреть свои изменения; можно не бояться удалять блоки кода - все равно они сохранятся в репозитории и можно в любой момент откатиться до нужной версии.

Что нового.
1. Обновил b2Physics.dll, туда добавились новые функции:
   b2_World_RaycastOne(),
   b2_Body_GetLinearVelocityFromWorldPoint(),
   b2_Body_GetLinearVelocityFromLocalPoint(),
   b2_Body_SetLinearDamping(),
   b2_Body_GetLinearDamping()
названия стараюсь делать "говорящие" во избежание различных разночтений.

2. Добавил заливку debug-объектов, чтобы было более ясно, где и какие объекты располагаются. Выглядит это так:


3. Появилось событие TBox2d_DebugRenderer.OnAfterCanvasDraw, описание у него такое:

property OnAfterCanvasDraw: TOnCanvasDrawEvent
TOnCanvasDrawEvent = Procedure (aGlCanvas: TExtGlCanvas)of object;

где TExtGlCanvas - это класс (сейчас находится в uBox2dGLDebug.pas), наследованный от TGLCanvas, в котором реализована заливка debug-объектов.

4. Добавил 3ью демку, хотел сделать существо, с четырьмя лапами, как у vap'а:
но у меня пока получается ужасно, понял, что я не дорос до таких физических выкрутасов и немного отложил создание передвижения такого существа до "лучших времен", когда в голове будет ясность, как такие процедурные анимации делаются в принципе (если у Вас есть идеи, статьи или еще какая-либо информация по этому поводу - делитесь, я всегда рад!)

5. При моделировании жука из 3ей демки появилась необходимость в !!!raycast'е!!! от кончика лапки вниз, к поверхности, по которой он движется. С ужасом обнаружил, что способа пустить луч из одной точки в другую я пока не внес в dll. Оперативно исправил этот недочет, выгрузив пока только RaycastOne() - то есть нахождение ближайшего объекта. Для проверки верности расчетов в короткие сроки завел Демо-4 для демонстрации луча и наглядной проверки происходящего. Выглядит это так:


Как скачать все исходники.
Для начала установите любой svn-клиент. Советую для начала обзавестись черепахой. Удобна, встраивается в explorer, ведет себя адекватно, выполняет все необходимые в работе вещи.
После установки, выберите папку, куда хотите загрузить исходники, нажмите правой кнопкой мыши, найдите подпункт Svn Checkout, вбейте путь
и, если все пройдет успешно, то можно радоваться - после этой операции выгрузятся актуальные исходные коды, а также с этой папкой будет ассоциирован репозиторий на code.google. В дальнейшем, для обновления исходников, будет достаточно выбирать пункт Svn Update.

Сейчас 9ть ревизий, о новых дополнениях и коммитах буду сообщать по мере их появления...

Вот и все, собственно. Вроде основное написал, ничего не забыл.

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