Классные демки! Если действительно, такое можно наваять всего после пары часов знакомства, то отличная вещь!!!
Игрался с демами на офф сайте как-то, но так-как на флеше давненько не пишу, дальше не пошло. Радует, что с математикой с каждой версией плеера всё лучше
Да, иногда бывает. Можно вылечить если в onEnterFrame() добавить
if(dt > 0.1)
dt = 0.1;
Или включить continious collision detection в мире (но это тормозит)
у меня пример с этой опцией приводил к постоянному ускорению движения объектов. через 5-7 секунд после запуска уже просто мельтешение. забавно так сморится)
p.s. xubuntu 9.10/firefox3.5
Вообще насколько я знаю, в этом движке рекомендуется использовать константный временной шаг для физики. Нормальные результаты получаются даже если сделать флеш с 30 кадрами в секунду, и соответственно вызывать
world.step(1.0/30.0, 30)
Шесть лет назад я открывал такую тему на флэшере — о создании 2д физического движка. Никого не получилось заразить энтузиазмом. А сейчас смотрю на такое разнообразие движков и игр с физикой и жалею, что забросил флэш.
Думаю, одним из краеугольных камней тогда служила производительность вычислений и рендеринга во флеше. Сейчас, в последнее время, скорость вычислений значительно подросла, вот и появляются всякие 3D-танчики, 2D-физические движки.
В моем случае все упиралось в недостаточные знания по математике — я еще в школе учился. А остальные по-моему просто не верили в перспективность затеи.
Хорошее начинание. У меня вот никогда не ладилось с flash, хотя особо и не старался. Сейчас правда задумываюсь об Air.
В свое время доходил до текстурирования полигонов с W-буфером. Но это был asm. Да и разговор с Уральским из nVidia по вопросу «зачем, если есть аппаратные средства» отбил желание продолжать.
С каждым новым появившимся движком все больше удивляюсь в том, насколько похожие у них API. Есть некий мир, есть тело, есть геометрия, геометрические объекты связываются, добавляются физические параметры по вкусу — и вуаля — мы получили RigidBody: ) Эти бодисы взаимодействуют при вызове StepSimulation (time). И в каждом движке тела, которые перестают двигаться — становятся неактивными, и их иногда приходится активизировать явно. Даже эта оптимизация уже стала классикой: ) Так приятно, что при переезде с одного движка на другой почти все кажется знакомым. Жаль только, что физические параметры вроде трения, упругости по-разному интерпретируются в различных движках, что приводит к отличиям в поведении даже на самых примитивных случаях.
Работал с этим движком как-то. Некоторые вещи не очень удобны, сказывается тот факт, что его портировали с более низкоуровневого Си (сохранив по возможности сишный синтаксис и форматы данных)
Физика на Flash. Box2D Engine