Веревка Box2D, Javascript против Objective-C

У меня возник вопрос к опытным вальщикам. Я пытаюсь создать игру, в которой вы перемещаете объект с цепочкой, висящей под ним, я использую Box2DWeb и EaselJS с HTML5/CSS, и я планирую обернуть его с помощью PhoneGap, как только он заработает должным образом. Я тестировал на OSX Google Chrome, который отлично работает, и iOS Safari и обнаружил, что уже сталкиваюсь с проблемой производительности на iPhone с цепочкой — профилировав ее, это самый большой виновник.

Это ряд из 25 небольших тел, соединенных вращательными суставами. Я играл с кучей разных методов (включая веревочные соединения), и это способ, которым я получаю наименьшее растяжение и отскок (я хочу, чтобы это была веревка). Для начала я поинтересовался - знает ли кто-нибудь лучший способ изготовления веревки с помощью Box2D? И для двух, кроме сокращения итераций шагов, уменьшения тел ссылок и т. д., есть ли способ сделать это без снижения производительности?

И мой ГЛАВНЫЙ вопрос к ребятам, которые немного разбираются в играх PhoneGap/JS: не требует ли цепочка из 25 тел со скоростью 30 кадров в секунду слишком многого от этой реализации? Или может мне это сойдет с рук?

Я хорошо знаю AS3.0 и JS «ОК», я думаю, что если начать заново с ObjectC/C++, это превратит этот проект в годовой проект, так как я даже не знаю, что первым делом спросить у Google...

Заранее спасибо! Джош


person Josh    schedule 22.07.2013    source источник


Ответы (1)


В наших собственных проектах (на основе C++) я обнаружил, что количество вершин в динамических телах сильно влияет на производительность (устройства iOS не входят в число самых эффективных). В вашем случае я предполагаю, что это будет 25 квадратных тел (по 4 вершины в каждом) плюс тело в конце цепочки, которые активны одновременно. Все это очень сильно повлияет на производительность.

Вместо этого я бы попробовал возиться с веревочным соединением. Единственное, что я могу придумать, это если вы используете квадраты в качестве звеньев в цепочке, попробуйте использовать круги. Я обнаружил, что они намного лучше по производительности, но поведение цепи изменится. Вы можете установить ограничения на вращающиеся соединения, чтобы контролировать их.

person North-Pole    schedule 29.07.2013