我已成功使用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