为什么 Godot 对 elif 语句有问题?

Why is Godot having problems with elif statements?

这是带有 elif 语句的代码,这一段和一般的 elif 语句。我是 Godot 的新手,这是我学习的例子:

extends AnimatedSprite

func _process(delta):
    
     if Input.is_action_pressed("ui_right"):
      play("Run")
     flip_h = false
     elif  Input.is_action_pressed("ui_left"):
         play("Run")
        flip_h = true
        else:
            play("Idle")
     pass

我得到这个错误:

error(7,3):Error parsing expression, misplaced: elif

那会是什么呢?我不知道如何解决这个问题。

这与您缩进代码的方式有关。快速浏览一下 documentation.

ifelifelse 都应处于同一缩进级别。语句中的所有内容都应该再缩进一层。您的代码将如下所示:

extends AnimatedSprite

func _process(delta): 
  if Input.is_action_pressed("ui_right"):
    play("Run")
    flip_h = false
  elif Input.is_action_pressed("ui_left"):
    play("Run")
    flip_h = true
  else:
    play("Idle")

此外,最后不需要 pass,因为您调用的是 play("Idle")