动画的默认方法是将独立定时器设置为以与帧速率相同的频率执行。这不是我正在寻找的,因为它无法保证事件在正确的时间实际执行。与实际框架绘制缺乏同步导致偶尔的动画抖动。显而易见的解决方案是为每个帧运行一次函数,但我找不到这样做的方法。 on_draw()仅在我按键盘上的键时运行。我可以让on_draw()每帧运行一次,与帧图同步吗?
答案 0 :(得分:0)
执行此操作的方法是使用pyglet.clock.schedule(update),确保启用了vsync(默认情况下是这样)。这确保每帧运行一次on_draw()。传递给pyglet.clock.schedule()的更新函数甚至不需要做任何事情。它可以是空白的。 on_draw()现在每帧绘制执行一次,因此没有必要具有单独的功能,这两个功能每帧绘制都执行一次。如果在Window类中只有一个选项说on_draw()应该每秒绘制一次,但至少它现在正在工作,那会好得多。
我的撕裂仍然很糟糕,但这是我的平台或系统上的pyglet中的一个错误。没有人应该撕裂。