我正在尝试在一个单独的场景中创建一个具有玩家和子弹的自上而下的射击游戏。但是每当我运行游戏时,它都会显示
试图在空实例的基础“空实例”中调用函数“ get_position”。
顺便说一句,我是Godot的新手。
问题似乎出在此函数中:
const SPEED = 300
var bullet = preload("res://Mini-Scenes/Bullet.tscn")
func shoot():
var b = bullet.instance()
add_child(b)
b.set_position(position)
b.move_and_slide(Vector2(1, 0).rotated(rotation) * SPEED)
而且我也不认为我了解实例化的原理,
所以我的问题是:
答案 0 :(得分:0)
好的,按顺序:
Node
作为基础,然后将其复制并粘贴到内存中。然后,当您将此Node
作为子级添加到场景中的另一个子级时,将调用_ready
,Node
也开始分别为_process
和_physics_process
就像其他一些事情一样,例如接收事件(因为Node
必须在SceneTree
内才能与其他节点进行交互,而最常见的将一棵树添加到树中的方法是使其成为树的子节点另一个)。有关更多信息,请参见documentation on Instancing