我最近剛剛從pygame進入pyglet和rabbyt,但我碰到了一堵磚牆。Pyglet使用太多的CPU
我創建了一個基本的例子,其中一個Sprite(pyglet.sprite.Sprite中的類型)以每秒60幀的速度顯示。問題是這個簡單的程序以某種方式佔用了CPU時間的50%。我重複了在rabbyt庫中找到的精靈類型的實驗,結果相同。
我決定渲染1000幀,然後以每秒60幀的速度渲染10000個精靈,令我驚訝的是CPU使用率保持在50%。唯一的一點是,移動或動畫的精靈會導致輕微的口吃。
最後,我試着以每秒360幀的速度運行。同樣的結果,50%的使用。
下面是示例代碼:
import pyglet
import rabbyt
def on_draw(dt):
window.clear()
spr.render()
global window
window = pyglet.window.Window(800, 600)
spr = rabbyt.Sprite('ship.png')
spr.x = 100
spr.y = 100
pyglet.clock.schedule_interval(on_draw, 1.0/60.0)
if __name__ == '__main__':
pyglet.app.run()
我使用的是Core 2 Duo處理器,配備ATI HD 3500卡。
任何意見/想法表示讚賞。
...你有沒有嘗試過損壞blitting? –
不,我實際上並沒有意識到破壞。你能指出我的一些文件嗎? – Kiril
不是真的,但它不是很難;只需將背景畫在精靈的舊位置上,然後在新位置繪製精靈。 –