我最近开始使用 Ursina 游戏引擎(在 Python 中运行),并且在我的许多项目中都遇到了问题。我不知道如何实现延迟,或者在函数之间休眠。有一个Wait
功能我无法开始工作。我已经尝试过类似的替代方法,time.sleep()
并且具有使用延迟的功能,但它们似乎都不起作用。由于这不是一个非常流行的游戏引擎,因此在线指南或有用信息并不多。
问问题
584 次
2 回答
1
通过使用invoke()
函数来延迟调用函数,如下所示:
def foo():
print('bar')
invoke(foo, delay=5) # Calls myFunc after 5 seconds
对于需要参数的函数:
def foobar(foo, bar):
print(foo + bar)
invoke(Func(foobar, 'foo', 'this is foo\'s value', 'bar', 'and this is bar\'s'), delay=5)
于 2020-10-29T11:07:16.573 回答
0
这实际上很容易使用延迟,这里有一个例子:
from ursina import *
app = Ursina()
player = Entity(model='cube', color=color.gray, scale_y=2)
def input(key):
if(key == 'space'):
player.y +=1
invoke(setattr,player,'y',player.y-1,delay=.25)
app.run()
在这个例子中,基本上,当玩家按下 时space
,实体的 y 增加 1,延迟后实体的 y 减少 1,换句话说,我们创建了一个带有延迟的跳跃。
注意:该setattr()
函数设置对象的属性值。您可以在此处查看有关此功能的更多信息:https ://www.programiz.com/python-programming/methods/built-in/setattr
于 2021-10-15T14:51:20.430 回答