2013-02-25 3 views
0

Я планирую разработку кросс-платформенной игры на основе HTML5-Canvas, ориентированной на платформы Android и iPhone с использованием фреймворка Box2D js. Моя игра содержит некоторые из хороших движений физики, поэтому я выбрал Box2D JS (http://box2d-js.sourceforge.net/).Как разрешить отставание в работе при перемещении объектов с помощью механизма ядра Box2D JS в браузере Android?

Итак, я недавно использовал некоторые примеры HTML Box2D (http://box2d-javascript-fun.appspot.com/) в своем Android-телефоне и Android-планшете Android. Я действительно чувствовал низкую производительность этих страниц при выполнении основных движений физики.

Может кто-нибудь предложить, как его решить?

Может ли кто-нибудь предложить другие двигатели, которые могут обеспечить хорошую производительность, которая должна иметь прикладную физику движется, как Box2D?

P.S .: Android-планшет Android имеет 1 ГГц процессор и 512 МБ ОЗУ. Пока я работал над страницами, почти 240 МБ были бесплатными.

ответ

1

Да, полотно действительно имеет более низкую производительность на мобильных устройствах - поэтому box2d также будет медленнее.

Внутри box2dJS вы можете настроить интервалы времени и разрешения, чтобы адаптироваться к более медленным мобильным устройствам. Настройка интервала времени приведет к оживлению игры быстрее или медленнее. Регулировка итераций разрешения приведет к тому, что игра будет более/менее точной с ее физикой. Возможно, вы можете «точно настроить» box2d и все еще использовать его.

Я рекомендую настраивать, а не оставлять box2d. Такие игры, как Angry Birds, используют ядерный движок box2d и хорошо работают на мобильных устройствах. Таким образом, эффективное программирование делает box2d хорошо выполненным (и плохое программирование может привести к плохой работе box2d).

Больше на ваш вопрос, хотя: Мэтт Грир сделал некоторые испытания физики двигателей в прошлом месяце, и его результаты здесь: http://buildnewgames.com/game-engine-comparison/

И, наконец, если вам не нужны более продвинутые физики, как реституция и трения, вы можете просто «бросить свои собственные»! Вы можете вытащить матричное преобразование и коллизионный код из одного из многих физических движков с открытым исходным кодом, и сложная часть сделана для вас. В дополнение к изучению того, как они оптимизировали производительность, в конечном итоге вы получите небольшой быстрый движок физики &, который настроен на ваши конкретные потребности.

+0

Я предполагаю, что вы предлагаете прирост частоты кадров. Также я проверю «временные интервалы» и «корректировки разрешения», как я могу применить. Я также проверю другие двигатели с ссылкой Мэтта. Один вопрос еще здесь: Если я получил для других двигателей, таких как LIME, Crafty или Impact, тогда я получил все физические эффекты вида box2d там? .. Спасибо за эту помощь :-) –

+0

Игровые движки позволяют создавать Сцены, добавить/удалить узлы, работать с Действиями и отвечать на Collisions. У них нет передовой физики Box2d. Если вам не нужна вся передовая физика, они - хорошие рамки, чтобы начать строить свои игры. – markE