1

我最近开始使用 Ursina 游戏引擎(在 Python 中运行),并且在我的许多项目中都遇到了问题。我不知道如何实现延迟,或者在函数之间休眠。有一个Wait功能我无法开始工作。我已经尝试过类似的替代方法,time.sleep()并且具有使用延迟的功能,但它们似乎都不起作用。由于这不是一个非常流行的游戏引擎,因此在线指南或有用信息并不多。

等待函数文档

4

2 回答 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 回答