私はpythonのpygletパッケージを使って簡単な画像表示を書いた。私のLinux laptopでは、コードは期待どおりに動作し、毎秒60フレームを一定に表示していました。Pythonでpygletを使用すると、マウスドラッグするとフレームレートが上昇するのはなぜですか?
私のWindows 7デスクトップ(ただし、@XiとGeForce GTX 550 Ti)では、フレームレートが非常に低く(〜10 FPS以下)なっています。しかし、マウスドラッグイベントがフレームレートを大幅に上げる(60 FPS以上)ため、これはハードウェアの制限ではないと私は考えています。
私はマウスドラッグしていないときにフレームレートが低く、なぜ私は速いのですか?
は、ここで私は、この動作を生成するために使用して単純化されたコードです:
import pyglet
from pyglet.window import mouse
image_1 = pyglet.resource.image('1.png')
image_2 = pyglet.resource.image('2.png')
fps_display = pyglet.clock.ClockDisplay()
image_x, image_y = 0, 0
frame = 0
window = pyglet.window.Window(image_1.width, image_2.height)
@window.event
def on_mouse_drag(x, y, dx, dy, buttons, modifiers):
global image_x, image_y
if buttons == mouse.LEFT:
image_x += dx
image_y += dy
@window.event
def on_draw():
global frame
frame += 1
window.clear()
if frame%2 == 0:
image = image_1
else:
image = image_2
image.blit(x=image_x, y=image_y,
height=image.height,
width=image.width)
fps_display.draw()
if __name__ == '__main__':
pyglet.app.run()
「1.png」と「2.png」は同一のピクセル寸法を有し、私が見ることができるように、彼らは異なるイメージですフレームの反転。私はpython 2.7.2とpygletバージョン1.2devを使用しています。私は役に立つと思われる追加情報を追加して嬉しいです。私はどんなpygletをしたので、
あなたの答えは、ドキュメントの適切な場所に案内してくれます。http://www.pyglet.org/doc/programming_guide/animation_techniques.html – Andrew