pyglet.clock.tick 不工作

pyglet.clock.tick is not working

我正在使用 pyglet,但我发现 pyglet.clock.tick() return.

的作用很奇怪

pyglet.clock.tick() 工作不正常,returned 值与经过时间不同。

main.py:

import pyglet

window = pyglet.window.Window()

def update(*args):
    pass

@window.event
def on_draw():
    dt = pyglet.clock.tick()
    print(dt)

    # rendering

pyglet.clock.schedule_interval(update, 1.0 / 60.0)
pyglet.app.run()

输出:

0.00023519893125589775
0.00023904764104010212
0.0006876361481085169
0.00020056054319805838
0.00024161344756334913
0.00023306075915385804
0.00038358807515770366
0.00021253430697143472
0.00021167903813035238
0.00019927763993665693
0.00024204108198366825

您每帧使用了两次时钟。

dt传递给update函数。 如果您使用 pyglet.clock.schedule_interval,请不要 在更新中调用 pyglet.clock.tick(),它将 return 自上次 schedule_interval 以来经过的时间。

这是您当前的时间测量方式:

0s                     1/60s                   2/60s                   3/60s
|-----------------------|-------|---------------|-------|---------------|
                        <your dt>               <your dt>

代码应该是:

import pyglet

window = pyglet.window.Window()

def update(dt):
    print(dt)

    # rendering

pyglet.clock.schedule_interval(update, 1.0 / 60.0)
pyglet.app.run()