sprite(攻击)在以下情况下不起作用:
if Input.is_action_just_pressed("ui_attack"):
$Sprite.play("attack")
但如果:
if Input.is_action_pressed("ui_attack"):
$Sprite.play("attack")
它的工作!!!!
请问解决代码是什么?!!因为我想一键点击键盘来工作精灵......
您是否尝试过使用if event.is_action_pressed("ui_attack"):
?我发现这event
比Input
在按下按钮后只想要一个动作而不是多个动作要好。
如果它仍然不起作用,请尝试稍后添加if event.is_action_released("ui_attack"):
。您可能必须在之后添加一个附加命令以使引擎可以接受代码,例如print("Key Released")
. 就我而言,它从来没有最终打印任何东西到控制台,但每次按下按钮它只给我一个动作。
我假设这是您正在寻找答案的问题。如果不是,请忽略,我整晚都没有睡着,很容易混淆。
编辑:我忘了补充一点,它必须在一个func _input(event)
函数中才能正常工作。我已经包含了一个简单的示例,每次按下左按钮时都会将文本打印到控制台一次。见下文:
extends Node2D
var text = PrintText()
func PrintText():
return("Print Text Once")
func _ready():
pass
func _input(event):
if event.is_action_pressed("ui_left"):
print(text)
(PS 我是在上周左右才发现 Godot,但从那时起我就一直在奔波。我喜欢这个引擎,但如果我的理解是“基本的”,请原谅我。)