![]() |
У кого-нибудь есть опыт создания top-down гоночных игр на box2d?
Собственно сабж :)
Заинтересовался этим движком. Пока, к сожалению, нет времени серьезно сидеть с ним днями, изучать оф форум и т.п., так как работа + занят написанием довольно серьезной стратегии, но любопытство все-таки берет свое :D И так, ближе к делу. Как создать мир бокс2д с гравитацией понятно, как создавать тела и их описания тоже (в общем ничего сложного), интересует другое. А именно: При создании игры с видом сверху гравитация естественно отключается, но ей насмену приходит linearDamping. Собственно это помогает останавливать "автомобиль" после разгона, но как применять angularDamping? Или, если я что-то неправильно понял, то как заставить этот прямоугольник (машину), реалистично поворачивать? То есть, если я при движении нажму клавишу поворота, чтобы машину слегка заносило, но это не было похоже на движение по льду (пока у меня получалось сделать только подобное) Если есть те, кто мог бы набросать простенький пример, буду признателен :victory: з.ы. Пример искал, и даже находил, но все сайты типа emanueleferonato и.п. полная лажа, во-первых в основном все примеры с видом сбоку, во-вторых все сделано дочтаточно коряво, как например это http://www.emanueleferonato.com/2009...ke-box2d-cars/ Такого движения мне не нужно :) |
ну обычно берут движок и далее его наворачивают
|
Это больше походит на офтоп.
Движок взят, box2d. Вопрос, по-моему задан конкретный, а не о том, что обычно делают с движком ;) Если имелось в виду, доработка того примера Эмануэле, то это я делать пробовал, не получилось. Но он, видимо сам сделать ничего не смог, по-этому выложил такое "роботоподобное движение", так сказать, чем богаты, тому и рады. |
Раз просто поворт тела не катит)
и кол-во машин не много предлогаю такие варианы: http://savepic.ru/1856253.jpg http://savepic.ru/1866492.jpg по мне той проблемы которой у тебя не будет. попробуй расскажешь тоже гонки думаю сделать |
Код AS3:
|
Так а чем пример Эмануэля не нравится? вполне реалистично. Разгон, занос.
Добавлено через 56 секунд Это не оффтоп, просто сам в свое время с него передирал, может если подробнее скажешь что именно надо - смогу помочь. |
Вложений: 1
Эмануэля вариант слишком большой и пока что немного не понятный для меня, хочется понимать что делаю, и тем более в моем случае колеса как бы не нужны. Плюс уже три раза пытался обрезать вариант Эмануэля, там все между собой связано и одно без другого не работает.
Я пытаюсь сделать top-down машинку, все работает кроме поворотов. Объект начинает двигаться, начинаю поворачивать, сам объект меняет свой угол куда нужно, но инерция неправильно отрабатывает, как будто на машине заехал на каток, начинаешь набирать скорость и поворачиваешь, машину несет боком, потом она по чуток уже двигается в правильном направлении. Надеюсь смог выразится :) swf прикрепил |
Цитата:
Самый лучший пример гонок на бокс 2д, что я видел, была игра Lil Racerz http://www.playground.ru/flash/racing/3733/ автор которой рашьше зависал на флешките. Но автору я писал, он куда-то бесследно исчез :D Я на сколько мог его игру растребушил, но так и не понял как машины собраны, точнее как они управляются. |
Я в свое время делал гонки. Не на флеше правда. Физику свою юзал, некое подобие верлетовой.
На бокс 2д я бы делал примерно как эмануэле. только вместо 4 колес сделал бы 2. Одно спереди одно сзади. Ключевая идея в том чтоб гасить боковую скорость у колес. Есть вектор направления колеса. Есть вектор скорости колеса (колесо двигается по этому вектору). Нужно спроецировать вектор скорости на вектор направления колеса. Тогда машинка будет вести себя реалистично, ехать только вдоль направления колес. Повороты машины осуществляются путем поворота вектора колеса. В бокс2д колеса можно сделать просто кругами, которые "прибиты" к корпусу машины. Одно спереди, одно сзади. Если нужны заносы, проецирование вектора скорости осуществляется не сразу, а за несколько итераций. |
вау! Как бы это все перевести на as3 да еще и под box2d )
спасибо! Буду колдовать и попробую еще с Nape поиграться.. |
Ralph_DiMarko, будет интересно посмотреть на результат ;)
|
договорились.
Как сделаю обещаю выложить сюда :) |
ждемс :D
Я кстати это все делал. Но похоже что-то все-таки делал не так. angularDamping у меня так нормально и не заработал. Машина поворачивала, но при езде по горизонтали двигалась медленнее, чем по вертикали |
Цитата:
|
уря! получилось. Но как на зло вчера свет отключили не смог выложить, седня вечером выложу. Как оказалось я просто немного неправильно делал, а так бы и в боксе работало, хотя это только в теории. И кстати очень непривычно что для создания коробочки всего три строчки кода нужно, вместо чуть ли не 10 в Box2D.
Но теперь другая проблема. Если в Nape отключить гравитацию, то объекты при столкновении входят в друг-друга как мягкие тела, где то до половины, а то и вообще насквозь проходят, а когда ставлю гравитацию то все нормально отрабатывает. |
тоже заинтересовала тема. нашел вот такое - car parcing - но код так написан что плеваца хочется - нету силы у меня такое копать(вроде и ребята нормальные....)
я никогда не работал с движками физики - что посоветуете - Nape или Box2D 2.1a или 2.0.1? Nape быстрее - но там тока swc дают... где понятнее АПИ? где создать физичесоке взаимодействие объектов проще, прикрутить к телам формы... спасибо за советы! |
3p.station
Мне Nape больше нравится. Хотя Box2D для понимания проще. В Nape более удобно(но сложнее для понимания) реализованы колбеки. Также в Nape есть некоторые вкусности вроде marching squares, декомпозиции полигонов и другого. Меня больше всего радует marching squares. Зато в бокс2д сделали какой-то жирный broad phase, которому не важно знать размер мира. Фильтрация коллизий/сенсоров в Nape мне нравится больше. В Nape есть партиклы. В Nape объект который стоит на месте и только вращается делается одной строчкой. Без джоинтов. А еще в Box2D есть CCD. В Nape нету, автор предлагает делать step несколько раз за кадр. Я перешел на Nape с Box2D и в общем-то доволен. Если решишь юзать Box2D, то бери тот что новее, 2.1а. |
Цитата:
|
спасибо Вам за ответы!
буду наверно ковырять Nape или вот еще нашел на базе бокса- http://code.google.com/p/quickb2/ с желешекой ((( : goodguy - ну покажите что у вас там вышло (( : |
Я уже вряд ли этот код найду. Тема то была создана довольно давно, а неудачные коды у меня долго не задерживаются :D
|
Вот что у меня вышло
http://megaswf.com/serve/101943/ Клик мышкой добавит новый бокс на поле. Никак не могу исправить это вхождение в друг друга при столкновении. Вот код Код AS3:
Код AS3:
|
Ralph_DiMarko, совершенно неверный подход. Прочитай мой пост на первой странице еще раз.
|
пишите разработчикам - может подскажут чего
|
У разработчиков глухо как в танке. Я первым делом писал им (точнее на их форуме), и не один раз. Ни одного ответа не было
|
Division, премного благодарен, но признаюсь мне тяжело это все перевести в код :(
Но ну допустим неверный подход, но это же не должно влиять на столкновение, может это не машина а просто коробочка, которую я сдвинул немного. |
Очевидно же, застряет потому что setPos вызывается. Машина - динамический объект, который подчинается законам симуляции.
Я сам спрашивал что-то на форуме, Лука ответил, не сразу правда. Повторюсь. Чтоб было нормально - делается два круга-колеса. Они цепляются PivotJointами(или скорее PinJoint) к корпусу. И влияние осуществляется на колеса(их скорость проецируется на вектор направления колеса), а не на саму машину. |
а.. кажется понял.
ей просто нужно придать инерцию чтобы она сама покатилась, тогда наверняка не будет такого.. |
а вот это как вышло ? реалистично ?
(сама скорость одинкова - не делал ее увеличение снижение, тоесть если вы не жмете вперед - то машина не едет и влево вправо тока вмсте с перед работает) |
катание по льду. Примерно тоже самое у меня получалось
|
Вложений: 1
Два дня работы, и получилось вот что.
Есть еще проблемы с задним ходом, и величины нужно подстроить, но уже прогресс. Думаю так же сделать все-таки 4 колеса. Будет реалистичнее На Box2D 2.0 работает, если делаю тоже самое на Box2D 2.1 linear и angular damping работают коряво. Похоже глюк движка |
Прикольное управление - как рыбка в аквариуме :)
|
Теперь загорелся желанием сделать тоже самое на джаве, и прифигачить все это дело к андроиду :D
|
Кстати ни у кого нет мыслей на счет AI противника? В одном примере было сделано через массив углов, но мне кажется это черезчур громоздкий вариант.
|
Каких еще углов? Есть массив точек / векторов, противник движется по траектории заданной этими точками, приближается к одной, переключается на следующую. Keith Peters в своей книжке ADvanced Actionscript 3 Animation хорошо этот принцип расписал, и исходники на его сайте есть
|
Цитата:
а книжку почитаю, спасибо) |
| Часовой пояс GMT +4, время: 22:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.