【问题标题】:How to add delay in Ursina Python Game Engine如何在 Ursina Python 游戏引擎中添加延迟
【发布时间】:2021-01-09 14:35:34
【问题描述】:

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

Wait function documentation

【问题讨论】:

  • 您的问题是一般性的,不包含任何可以帮助他人帮助您的参考代码。请考虑参考this 并编辑您的问题。

标签: python ursina


【解决方案1】:

延迟其实很好用,举个例子:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-02-14
      • 2021-09-13
      • 2022-07-12
      • 2017-03-31
      • 1970-01-01
      • 2021-02-21
      • 2011-11-26
      • 2021-11-30
      • 1970-01-01
      相关资源
      最近更新 更多