2012-04-10 99 views
5

在我以前的所有iOS遊戲中,我都將遊戲設置爲一個簡單的基於視圖的應用程序,並帶有一個視圖控制器,.h文件和.m文件。我設置了一個NSTimer,設置爲每秒30,40或60幀,稱爲主運行循環。在開發後期,我將圖形更新(以更高的FPS)和遊戲計算(更低的FPS)分開以減少延遲。我從來沒有理解如何在遊戲中實現多線程/併發性,因爲圖形和計算是相互依賴的......如何設置iOS遊戲?

鑑於我從來沒有機會閱讀「真實」遊戲的源代碼,我以合理的方式設置它,還是我對遊戲的主體框架採取了完全錯誤的方法並運行循環?

我問這個是因爲我注意到我的應用程序與App Store上的其他應用程序相比有很多延遲(例如,我的應用程序在iPhone 3G上嚴重滯後,但塗鴉跳躍,水果忍者,切割繩子等運行比較順利)。

回答

9
  1. 您想使用CADisplayLink而不是NSTimer作爲運行循環。
  2. 您希望儘可能多地在GPU上繪圖。這將釋放CPU週期,並且硬件會加速您目前在軟件中執行的大量計算。你可以在OpenGL中以OpenGL紋理繪製你的精靈。有一些庫爲你做這個,比如Cocos2DCocos2D提供了一個簡單的API用於創建和動畫精靈,並且它可以完成所有的OpenGL,所以你不需要。