FPS mit Pyglet-Hälfte der Monitor-Aktualisierungsrate

Ich bin neu in der Arbeit mit Pyglet und habe ein kleines Programm geschrieben, das einen Ball über den Bildschirm bewegt. Im Moment habe ich Probleme, eine konstante Bildrate von 60 fps zu erreichen. Während Pyglet mit der Bildwiederholfrequenz meines Monitors von 60 Hz synchronisieren soll, setzt Pyglet meine Bilder pro Sekunde auf die Hälfte meiner Bildwiederholfrequenz (z. B. bei 60 Hz und 30 Bildern pro Sekunde). Stimmt etwas in meinem Code nicht, das dies verursacht?

import pyglet
import physicalobject
import random
from pyglet.window import mouse

pyglet.resource.path = ['./resources']
pyglet.resource.reindex()

ball_image = pyglet.resource.image("ball2.png")

#sets clock format
fps_display = pyglet.clock.ClockDisplay(format='%(fps).2f fps')

def center_image(image):
    image.anchor_x = image.width/2
    image.anchor_y = image.height/2

center_image(ball_image)
ball = physicalobject.PhysicalObject(img=ball_image, x = 400, y = 300)
ball.scale = .2
ball.velocity_x = random.randint(-4,4)*150
ball.velocity_y = random.randint(-4,4)*150

#Calls update function to set new ball position based on velocity
def update(dt):
     ball.update(dt)

@window.event
def on_mouse_drag(x, y, dx, dy, button, modifiers):
     ball.x = x
     ball.y = y
     ball.velocity_x = dx * 20
     ball.velocity_y = dy * 20

@window.event
def on_draw():
     window.clear()
     ball.draw()
     fps_display.draw()

def main():
     pyglet.clock.schedule_interval(update, 1/120.0)
     pyglet.app.run()

if __name__ == '__main__':
     main()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage