动画的默认方法是将独立计时器设置为以与帧速率相同的频率执行。这不是我想要的,因为它不能保证事件在正确的时间执行。缺少与实际帧绘制的同步会导致偶尔的动画抖动。显而易见的解决方案是让一个函数为每个帧运行一次,但我找不到这样做的方法。on_draw()只在我按下键盘上的某个键时运行。是否可以让on_draw()每帧运行一次,并与帧绘图同步?
发布于 2016-08-23 06:57:02
执行此操作的方法是使用pyglet.clock.schedule(update),确保启用了vsync (这是默认设置)。这可确保每帧运行一次on_draw()。传递给pyglet.clock.schedule()的更新函数甚至不需要做任何事情。它可以是空白的。on_draw()现在每个帧绘制执行一次,所以没有必要单独使用两个函数,这两个函数都在每个帧绘制执行一次。如果在Window类中的某个地方有一个选项告诉我们应该每秒绘制一次on_draw(),那会好得多,但至少现在它可以工作了。
我的撕裂仍然很严重,但这是我的平台或系统上的pyglet中的一个bug。不应该有任何撕裂的。
https://stackoverflow.com/questions/39089578
复制相似问题