为什么 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.
if
、elif
和 else
都应处于同一缩进级别。语句中的所有内容都应该再缩进一层。您的代码将如下所示:
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")
。
这是带有 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.
if
、elif
和 else
都应处于同一缩进级别。语句中的所有内容都应该再缩进一层。您的代码将如下所示:
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")
。