如何在Ursina Python游戏引擎中添加延迟

2024-04-24 05:44:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始使用Ursina游戏引擎(在Python中运行),在我的许多项目中都遇到了问题。我不知道如何实现延迟,或者在函数之间休眠。有一个Wait函数我一直无法使用。我尝试过像time.sleep()这样的替代方案,并且有一个使用延迟的函数,但是它们似乎都不起作用。因为这不是一个非常流行的游戏引擎,所以网上没有太多的指南或有用的信息

Wait function documentation


Tags: 项目函数引擎信息游戏timedocumentation指南
2条回答

这实际上很容易使用延迟,下面是一个例子:

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

使用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)

相关问题 更多 >