需要设置一个条件,让动画结束后,会飞出一颗“子弹”。有没有某种方法可以决定结局?或者我怎样才能以编程方式编写它?我知道您可以使用 is_action_just_pressed 代替 is_action_pressed 方法,但是动画根本不会播放。代码:
func atack():
animation.play('atack')
var bul = bullet.instantiate()
bul.position = $Marker2D.global_position
get_parent().add_child(bul)
if Input.is_action_pressed("enter"):
atack()
velocity.x = move_toward(velocity.x, 0, speed)
是的你可以。为此,在动画节点中,转到“节点设置”,在那里找到“animation_finished”信号,将其连接到您在其中编写上述代码的节点,您将拥有一个在动画完成后触发的函数。然后你就可以为所欲为,例如,在攻击时,将布尔变量Attacked(当然是在脚本中创建的)设置为true,然后在animation_finished函数中,将这个变量设置为false。接下来,使用 if 语句检查何时按下攻击键。如果 Attacked == false 执行您的脚本,否则通过或者您不必添加 else 块