协程和产量
协程:一种计算机组件,它通过允许暂停和恢复执行来概括非抢占式多任务处理的子例程。
子程序:一组指令,旨在执行程序中经常使用的操作
要理解协程,我们需要知道顺序处理是如何工作的。
顺序处理
顺序处理按顺序逐行运行代码,从开始到结束按照接收到的顺序。
在 GDScript 中,除非另有说明(线程),否则您的代码会按顺序运行。
让我们看一下这个例子:
func _ready():
addHealth(10)
print('finished!')
func addHealth(lifePoints):
print('lifePoints called!')
现在让我们看看代码是如何顺序运行的。
通常,代码是逐行运行的。函数内部有代码,需要先运行所有内容,如果调用了函数,只需片刻暂停。
这种情况下,_ready()除非调用了另一个方法,否则该方法将运行其块内的所有代码,在这种情况下,该块将暂停并移至新调用的函数(addHealth(lifepoints))。
如何使用协程
要使用协程,您将需要使用两种方法,yield方法和 resume方法。
该yield方法暂停一个函数,而该resume方法将继续产生的方法。
func _ready():
var pausedFunction = addHealth(10)
print('finished!')
pausedFunction.resume() # resume the addHealth call
func addHealth(lifePoints):
yield() # pause the function
print('lifePoints called!')
学到更多
要了解有关 GDScript 上下文中的协程和 yield 的更多信息,请查看来自GDScript Dude的这一重要资源。