我成功地使用Farseer开发了我的游戏之一,使用XNA。这款游戏在Windows和WP7中运行得很有魅力。我目前正在IOS中移植我的游戏,使用Monotouch和Monogame。我已经成功地编译和使用了Farseer,我的第一个版本的游戏移植到Monotouch和Monogame上。除了表演外,一切都很好。游戏在iPhone设备上运行速度要慢得多。我做了一些代码调查,看起来主要的瓶颈是Farseer。它变得非常慢,当它必须管理超过5-6的身体与一个单一的夹具(圆圈)。
阅读文档时,我注意到要优化Farseer,可以更改设置静态类中的值:
性能
为了最大限度地利用引擎,您应该尝试遵循以下指导方针:
启用睡眠睡眠使您在世界上拥有大量的身体。它还可以增加发动机的稳定性,因为一堆物体中的小运动不会在堆中扩散。睡眠体的开销很小,因此建议启用它。
禁用CCD连续碰撞检测防止隧道,但以牺牲性能为代价。如果你没有问题的隧道,你应该一起禁用CCD。
最小化位置和速度迭代次数大量迭代使引擎更稳定,而代价是性能。你应该调整价值观以适应你的游戏。
坏消息是,如果我改变了那个类的任何值,似乎什么都不会发生。我试图按以下方式更改值:
EnableDiagnostics = false
VelocityIterations = 6
PositionIterations = 2
ContinuousPhysics = false我也尝试用较低的值,如VelocityIterations =1,但似乎没有什么改变.
有人已经更改了设置类值以提高性能吗?
发布于 2011-12-20 15:36:45
好的,
我已经成功了。主要的瓶装水与Farseer无关。一旦我解决了与我的“坏代码”相关的所有性能问题,像上面所描述的调优Farseer就能很好地获得5-10%的性能。
我的游戏是用XNA编写的,移植到iOS上,这是一个单调的安卓系统,mono4android非常成功。
https://stackoverflow.com/questions/8293696
复制相似问题