我已成功使用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,但没有更低的值试图似乎改变....
任何已更改的设置类值以提高性能?
你可能想尝试在http://gamedev.stackexchange.com/上询问这个问题。由于其社区专注于游戏开发(XNA开发人员看似高度集中),因此您可能会得到更好的答案。 –
单声道很慢。很可能没有什么办法可以改变设置,足以拯救你自己。 – ClassicThunder
不真实ClassicThunder,Mono和Monotouch即使在iOS上也非常高效。我已经解决了这个问题,我发现Farseer并不是这方面的主要瓶颈。 – John