2010-08-02 146 views
0

我在2D OpenGL ES iPhone遊戲中遇到了一些間歇性瓶頸。當我將它描述在鯊魚中時,沒有什麼了不起的東西出現了。在遊戲中,背景佔據了整個屏幕,我有大約7-8個小精靈在屏幕上不斷移動。大多數情況下,它運行平穩,但時不時我會得到一個小框架口吃。這是持續運動的遊戲常見的問題嗎?另外,作爲一個附註,我調用glClear(GL_COLOR_BUFFER_BIT);每幀之後渲染。如果我放棄這一點,我仍然會偶爾跳過一些幀,但是比我離開glClear調用的頻率更低。我還爲我的所有遊戲精靈使用了單個spritesheet紋理。2D iPhone遊戲性能

+0

爲什麼你打電話glClear,如果你已經意識到你不需要它?如果您只是要再次繪製背景,則無法清除屏幕。 – Ricket 2010-08-06 20:00:50

+0

在做了一些進一步的研究之後,我發現將glClear放在iphone硬件上實際上可能會導致性能下降。這可能不是其他設備上的情況。 – Scott 2010-08-09 15:35:00

回答

1

你是如何管理你的屏幕刷新?也許你沒有完全同步到顯示刷新率。如果你還沒有,我建議使用CADisplayLink來匹配你的刷新到顯示器。 Apple最新的OpenGL ES模板顯示瞭如何執行此操作。

+0

我可能沒有同步到顯示刷新率。我打電話給 [NSTimer scheduledTimerWithTimeInterval:1.0/60.0 target:self selector:@selector(mainGameLoop)userInfo:nil repeats:NO]; 然後我在mainGameLoop函數的末尾做了相同的調用(因此導致我的循環稍微延遲並保留了cpu資源)。 CADisplayLink看起來很有前途。今晚我會試着實施這個。 – Scott 2010-08-03 20:48:45