0

sprite(攻击)在以下情况下不起作用:

if Input.is_action_just_pressed("ui_attack"):

   $Sprite.play("attack")

但如果:

if Input.is_action_pressed("ui_attack"):

$Sprite.play("attack")

它的工作!!!!

请问解决代码是什么?!!因为我想一键点击键盘来工作精灵......

4

1 回答 1

0

您是否尝试过使用if event.is_action_pressed("ui_attack"):?我发现这eventInput在按下按钮后只想要一个动作而不是多个动作要好。

如果它仍然不起作用,请尝试稍后添加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,但从那时起我就一直在奔波。我喜欢这个引擎,但如果我的理解是“基本的”,请原谅我。)

于 2019-04-03T23:55:02.517 回答