[英]What does invoke() do in Ursina module
我导入了Ursina
模块。 它是一个游戏引擎。
我查找了一个教程,并在代码中使用了invoke()
。 我试图找到文档,但似乎没有关于它的信息。 教程中的代码如下:
from ursina import *
# create a window
app = Ursina()
# most things in ursina are Entities. An Entity is a thing you place in the world.
# you can think of them as GameObjects in Unity or Actors in Unreal.
# the first paramenter tells us the Entity's model will be a 3d-model called 'cube'.
# ursina includes some basic models like 'cube', 'sphere' and 'quad'.
# the next parameter tells us the model's color should be orange.
# 'scale_y=2' tells us how big the entity should be in the vertical axis, how tall it should be.
# in ursina, positive x is right, positive y is up, and positive z is forward.
player = Entity(model='cube', color=color.orange, scale_y=2)
# create a function called 'update'.
# this will automatically get called by the engine every frame.
def update():
player.x += held_keys['d'] * time.dt
player.x -= held_keys['a'] * time.dt
# this part will make the player move left or right based on our input.
# to check which keys are held down, we can check the held_keys dictionary.
# 0 means not pressed and 1 means pressed.
# time.dt is simply the time since the last frame. by multiplying with this, the
# player will move at the same speed regardless of how fast the game runs.
def input(key):
if key == 'space':
player.y += 1
invoke(setattr, player, 'y', player.y-1, delay=.25)
# start running the game
app.run()
请帮我。
PS 我正在使用 Linux Mint。
它用于调用有延迟的函数,类似于 Unity 中的 Invoke()。 所以在这种情况下,它会在 0.25 秒后将 player.y 减少 1。
调用(函数,*args,**kwargs)
编辑:来自文档的示例:
def test_func(item, x=None, y=None):
print(item, x, y)
test_func('test')
invoke(test_func, 'test', delay=.1)
invoke(test_func, 'test1', 1, 2, delay=.2)
invoke(test_func, 'test2', x=1, y=2, delay=.3)`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.