脚本-流程

Godot中的许多动作是由回调函数或虚函数触发,所以不需要编写那些总是运行的代码。

但是,在每一帧上都需要处理脚本仍然很常见。有两种类型的处理:空闲处理和物理处理。

当 Node._process() 方法在函数中被定义时,处理流程就会被激活.。可以通过 Node.set_process() 函数来进行开关.

每次绘制时都会调用此方法,因此调用频率完全取决于应用程序在每秒运行的帧数(FPS):

func _process(delta):
    # Do something...
    pass

delta参数包含自从上一次调用``_process()``以来以秒为单位的时间,类型是浮点数。

无论游戏的FPS如何,这个参数都可以用来确保事务总是占用相同的时间。

例如,运动常常乘以时间增量以使运动速度既恒定又独立于帧速率。

用``_physics_process()``进行物理处理是类似的,但它应该被用在那些必须在每个物理迭代之前发生的过程上,比如控制一个角色。它会在每一个物理迭代之前运行,并在固定的时间间隔内调用:默认情况下每秒60次。您可以从项目设置中更改这个间隔:物理 - >常用 - >物理Fps。

函数``_process()``不与物理同步。它的帧频不是恒定的,并且取决于硬件和游戏优化。在单线程游戏中它的执行是在的物理步骤之后完成的。

测试此方法的一种简单方法是使用以下脚本创建具有单个标签节点的场景:

extends Label

var accum = 0

func _process(delta):
    accum += delta
    text = str(accum) # 'text' is a built-in label property.
这将显示一个每帧增加的计数器。
 
posted @ 2018-12-30 16:31  宸少凌  阅读(254)  评论(0编辑  收藏  举报

万年以来谁著史,三千里外欲封侯