簡體   English   中英

如何在游戲中使用多線程(iOS)

[英]how multithreading is used in games (iOS)

我正在制作一款基於NSTimer的游戲,以40 fps的速度調用主循環,當我運行它時,即使在最新的iPod touch上,它仍然會滯后一個明顯的數量。 是否可以使用多線程來減少滯后而不降低幀速率,或者多線程是否只是為了在執行復雜計算時保持ui響應? 如果它可以使用,你能指點我一個如何實現它的教程嗎?

通常,建議您從主線程中移除耗時的操作。 主線程處理應用程序的用戶界面,如果阻止,則會阻止標准UI元素更新和觸摸事件注冊。 根據游戲幕后(物理,AI等)的處理程度,您可能需要將其中的大部分內容移動到后台線程。

多線程不是一個簡單的主題,但Apple通過Grand Central Dispatch使這變得更容易,因此我強烈建議閱讀他們的並發編程指南 ,該指南描述了這個以及在您的應用程序中實現多線程的其他技術

Apple在其面向iOS的OpenGL ES編程指南中有一個名為“ Concurrency and OpenGL ES ”的整個部分。 在此,他們描述了幾種使用多線程提高OpenGL ES應用程序性能的方案。

請不要用UIKIT制作需要高FPS的游戲。 如果它是2D游戲你需要去Quartz或者COCOS2D(基於OpenGL),如果它是3D,那么@Ajeet建議你應該使用OpenGL或者尋找適用於iOS的3D引擎以獲得高FPS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM