如何解决Godot 中的缩进问题
所以我正在制作一个波浪射击游戏,我遇到了这些错误,我不知道如何解决这个问题,它说是意外的缩进,我已经尝试了所有可能的解决方案是的,我知道 gd 脚本类似于 python 并且它的缩进敏感唐无论如何请不要告诉我代码如下:
extends Sprite
var speed = 75
var velocity = Vector2()
var stun = false
var hp = 3
var blood = preload("res://blood.tscn")
if hp <= 0:
if Glob.camera != null:
Glob.camera.screen_shake(120,0.3)
Glob.points += 1
if Glob.node_creation_parent != null:
var blood_part = Glob.instance_node(blood,global_position,Glob.node_creation_parent)
blood_part.rotation = velocity.angle()
queue_free()
print(Glob.points)
func basic_move_towrds(delta):
if Glob.player != null and stun == false:
velocity = global_position.direction_to(Glob.player.global_position)
elif stun:
velocity = lerp(velocity,Vector2(0,0),0.3)
global_position += velocity * speed * delta
解决方法
当您收到“意外缩进”时,意味着您将缩进更改为右侧,但没有任何声明来证明它是正确的。
例如:
func example_func() -> void:
print("something")
print("something else") # <- error: unexpected indentation
一般情况下,需要增加缩进的语句:
func example_func() -> void:
print("something")
if whatever:
print("something else")
如果有语句,缩进必须增加。因此,这也是一个错误:
func example_func() -> void:
print("something")
if whatever:
print("something else") # <- error: expected an indent block
没有声明,缩进根本不应该增加:
func example_func() -> void:
print("something")
print("something else")
例外是表达式扩展多行(可以在行尾使用 /
,也可以使用多行括号或圆括号)。
如果您只是阅读代码并查看缩进更改的位置,那么您会选择缩进不应该更改的情况。
在这种情况下:
var blood = preload("res://blood.tscn")
if hp <= 0:
为什么那个 if
在右边?它在什么里面?
实际上,GDScript 不支持顶级语句。该 if
语句必须放在 func
内。
我敢猜测代码应该在 gunc _process(_delta:float) -> void:
内。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。