Я успешно использовал Farseer, чтобы разработать одну из моих игр, используя XNA. Игра работает как очарование в Windows и WP7. Я сейчас работаю над портированием своей игры в IOS с использованием Monotouch и Monogame. Я успешно скомпилировал и использовал Farseer также над первой версией моей игры, перенесенной на Monotouch и Monogame. Все работает отлично, за исключением выступлений. Игра работает намного медленнее на устройстве iPhone. Я сделал некоторые исследования кода, и кажется, что основным узким местом является Farseer. Это становится очень медленным, когда ему приходится управлять более 5-6 тел с одним прикрепленным креплением (круг).Изменение Farseer Physics Настройки двигателя для улучшения характеристик
Чтение документации, я заметил, что мелодия предсказателю я мог изменить значение из Установка статического класса:
Производительность
Для того, чтобы получить максимальную отдачу от двигателя, вы должны попытаться следовать указаниям ниже:
Включить спящий спящий позволяет иметь большое количество тел в мире. Это также может повысить устойчивость двигателя, так как небольшие перемещения в стопке тел не распространяются в стеке. У спального тела мало накладных расходов, поэтому рекомендуется его использовать.
Отключить ПЗС Непрерывное обнаружение столкновений предотвращает туннелирование, но за счет производительности. Если у вас нет проблем с туннелированием, вы должны полностью отключить CCD.
сведение к минимуму количества положения и скорости итераций Большое количество итераций делает двигатель более стабильным за счет производительности. Вы должны настроить значения в соответствии с вашей игрой.
Плохая новость заключается в том, что если я изменю любое значение этого класса, ничего не произойдет. Я попытался изменить значения следующим образом:
EnableDiagnostics = false
VelocityIterations = 6
PositionIterations = 2
ContinuousPhysics = false
Я попытался также с более низкими значениями, как VelocityIterations = 1, но ничего, кажется, изменения ....
Любых уже изменил значение класса Настройки для улучшения представления?
Возможно, вы захотите попросить об этом на http://gamedev.stackexchange.com/. Поскольку его сообщество специально сосредоточено на разработке игр (с кажущейся высокой концентрацией разработчиков XNA), вы можете получить более качественные ответы. –
Моно очень медленно.Там очень хорошо не может быть каким-либо образом изменить настройку, чтобы спасти себя. – ClassicThunder
Не правда, ClassicThunder, Mono и Monotouch действительно эффективны даже на iOS. Я решил проблему, и я обнаружил, что Farseer не был основным препятствием на этом. – John