Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
delta_time在python arcade上是如何工作的?_Python_2d Games_Pyglet_Timedelta_Game Loop - Fatal编程技术网

delta_time在python arcade上是如何工作的?

delta_time在python arcade上是如何工作的?,python,2d-games,pyglet,timedelta,game-loop,Python,2d Games,Pyglet,Timedelta,Game Loop,我正在阅读有关python arcade的教程,希望了解函数的工作原理 绘图时有一个名为的函数(增量时间) 我查阅了arcade的代码,但不知道库如何让时钟保持运行。有人能帮我理解它是如何工作的吗 这里有一个例子: 我搞不懂图书馆是怎么知道保持时钟运转的 库使用一个时钟周期性地调用绘图时的函数,将经过的时间(以秒为单位)作为参数传递给它 既然你问了这一切是如何连接起来的,那么让我们看看: 这一切都从main()函数开始。你的电话是: # Tell the computer to cal

我正在阅读有关python arcade的教程,希望了解函数的工作原理

绘图时有一个名为
的函数(增量时间)

我查阅了arcade的代码,但不知道库如何让时钟保持运行。有人能帮我理解它是如何工作的吗

这里有一个例子:

我搞不懂图书馆是怎么知道保持时钟运转的

库使用一个时钟周期性地调用绘图时的
函数,将经过的时间(以秒为单位)作为参数传递给它

既然你问了这一切是如何连接起来的,那么让我们看看:


这一切都从
main()
函数开始。你的电话是:

    # Tell the computer to call the draw command at the specified interval.
    arcade.schedule(on_draw, 1 / 80)
因此,您正在调用arcade.schedule
传递对绘图上
的引用

好吧,我们去兔子洞


arcade.时间表
记录如下:

计划每隔几秒钟自动调用一个函数

…遗憾的是,他们对函数的调用方式(即使用什么参数,如果有的话)没有更具体一点——我们必须查看源代码,即忽略docstring:

就这样!它基本上是将作业委托给
pyglet.clock.schedule\u interval
,在这里,我们也不知道它传递给函数的参数是什么。。。我的意思是我们有一个想法,但你要求一个证据,所以你会得到一个证据


挖掘(为简洁明了而编辑--粗体文本):

计划时间间隔(func,interval,*args,**kwargs)

计划每隔几秒钟调用一个函数

该函数应该有一个原型,其中包括dt作为第一个参数,它给出了自上次调用以来经过的时间(以秒为单位)。给此函数的任何附加参数都会传递给回调函数:

def callback(dt, *args, **kwargs):
  pass
参数:

  • func(
    callable
    )–计时器过期时调用的函数
  • 间隔(
    float
    )–每次呼叫之间等待的秒数
这里有:它说将以经过的时间作为第一个参数来调用函数。(好吧,我必须在中编辑该部分,但我确信这就是他们的意思!)



现在,请不要问我pyglet.clock在内部是如何工作的;)

这是如何进入
delta\u time
参数的?我查了一下资料来源,但找不出答案。我知道我的答案和你要求的不完全一样,我重写了它。更好吗?太棒了,比我想象的还要好。谢谢你的热情帮助!
def schedule(function_pointer: Callable, interval: Number):
    pyglet.clock.schedule_interval(function_pointer, interval)
def callback(dt, *args, **kwargs):
  pass