私は最近、pygame から pyglet と rabbyt を始めましたが、レンガの壁のようなものにぶつかりました。
1 つのスプライト (pyglet.sprite.Sprite にあるタイプ) が 60 フレーム/秒で表示される基本的な例を作成しました。問題は、この単純なプログラムが何らかの理由で CPU 時間の 50% を使用していることです。Rabbyt ライブラリにあるスプライト タイプで実験を繰り返しましたが、結果は同じでした。
1 秒あたり 60 フレームで 1000、次に 10,000 のスプライトをレンダリングすることにしましたが、驚いたことに、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 カードを使用しています。
アドバイスやアイデアをいただければ幸いです。