Извините за то что сорвался, но «Заносы и столкновения можно добавить без проблем» дано не для всех, как и множество других задач без готовых решений(движков/модулей/etc..), вопрос/проблема тут скорее в моем уровне знания флеша, из-за этого и выбрал готовый физ.движок для реализации таких вещей.
«Если интересно — можем попробовать совместно сделать такую же машинку без использования бокс2д, кто знает, может получится статья?»
Спасибо. Не думаю что это потянет на полноценную статью, хотя с удовольствием бы посмотрел на это даже сейчас, имея в распоряжении хорошую реализацию на Box2D.
Да кстати, тоже достаточно хорошая реализация, но вот у меня немного не хватило мозга чтобы понять как оно ездит. Да и дрифты там слишком уж… Возможно, трение контролируется. но демка не очень впечатлила. Хотя конечно, было поначалу желание разобраться и с этим.
«Мне кажется, вы стреляете из пушки по воробьям.
Тут отлично показано как можно сделать все гораздо проще (как по мне).»
Гм. Я вроде выше отписал о моих предпочтениях относительно Box2D. Зачем нам делать свой физический движок если есть хороший готовый?
«Заносы и столкновения можно добавить без проблем»
Так где же вы были когда я ковырял тот пример с xitri.com? Да, я понимаю вас, всё знаете, профи и всё такое. Но почему же я тогда не нашел достойной реализации в момент разработки этого? Да и собсно в топике я расписал примитивную систему реализации заносов для 2D. И да, если говорите о простом создании заносов, то вы скорее всего по-быстрому нашли эту статью, в которой вся реализация заносов сводится к тому что физический движок за тебя все считает, т.к. по сути там (в 3D движке) ничего не стоит сделать круглое тело (оно же — колесо), добавить ему массы и трения, и просто крутить его, благодаря чему имеем практически готовую физику движения. В Box2D из-за того что это 2D движок мы имеем не круги, а прямоугольники, которые можем условно принять за кубы, но покрутить как круги мы их не можем, поэтому приходится просто «толкать» их вперёд и добавлять нужные трения по осям для достижения эффекта езды и одновременно дрифта (без такого трения получим эффект езды по льду).
Не знаю ответа автора, но предположу что реально могли бы быть и заносы, посмотрите на мою реализацию. Для реализации заноса достаточно преобразовать глобальный вектор движения колеса в локальный и приложить «боковое» трение. А управлять авто — просто прикладывать к текущему повороту колеса вектор скорости (в моем случае — speedX и speedY). Точнее сказать не прикладывать даже, а скорее даже направление — среднее между новым и предыдущим, а скорость (длина вектора) — выбирать наибольшее из двух(предыдущее и новое).
В данном варианте ускорения как такового вообще нету. Сразу прикладываем к телу максимальную скорость. Собственно отсутствие нормальной подобной статьи заставило меня сделать своё.
Более простая реализация игрового мира и столкновений в будущем. В планах было сделать игру, но из-за нехватки времени проект заморожен, отчего решил поделиться наработками со всеми.
По себе скажу — я читал офф.документацию, в т.ч. английскую оригинальную версию и оно мне показалось довольно кодоёмким, отчего решил все-таки поковыряться и освоиться с оболочкой для сего — с QuickBox2D, даже несмотря на то что оно использует не последнюю версию Box2D'a. По поводу ресурсов в QuickBox2D ничего сказать не могу, но то что кода получается меньше в отличие от Box2D — это факт. По крайней мере самые основные моменты — создание примитивов/джоинтов в мире.
Ну я же расписал немного, основные моменты — на блоки разделил, и тот кто разбирается — должен понять, т.к. вроде ничего сложного нет, но если причина кроется в этом — в ближайшие дни допилю модуль до дружелюбного вида, выложу, и построчно обьясню что и как.
«Если интересно — можем попробовать совместно сделать такую же машинку без использования бокс2д, кто знает, может получится статья?»
Спасибо. Не думаю что это потянет на полноценную статью, хотя с удовольствием бы посмотрел на это даже сейчас, имея в распоряжении хорошую реализацию на Box2D.
Тут отлично показано как можно сделать все гораздо проще (как по мне).»
Гм. Я вроде выше отписал о моих предпочтениях относительно Box2D. Зачем нам делать свой физический движок если есть хороший готовый?
«Заносы и столкновения можно добавить без проблем»
Так где же вы были когда я ковырял тот пример с xitri.com? Да, я понимаю вас, всё знаете, профи и всё такое. Но почему же я тогда не нашел достойной реализации в момент разработки этого? Да и собсно в топике я расписал примитивную систему реализации заносов для 2D. И да, если говорите о простом создании заносов, то вы скорее всего по-быстрому нашли эту статью, в которой вся реализация заносов сводится к тому что физический движок за тебя все считает, т.к. по сути там (в 3D движке) ничего не стоит сделать круглое тело (оно же — колесо), добавить ему массы и трения, и просто крутить его, благодаря чему имеем практически готовую физику движения. В Box2D из-за того что это 2D движок мы имеем не круги, а прямоугольники, которые можем условно принять за кубы, но покрутить как круги мы их не можем, поэтому приходится просто «толкать» их вперёд и добавлять нужные трения по осям для достижения эффекта езды и одновременно дрифта (без такого трения получим эффект езды по льду).