Function Godot3如何调用在另一个场景中创建的对象的方法

Function Godot3如何调用在另一个场景中创建的对象的方法,function,instance,scene,godot,Function,Instance,Scene,Godot,我正在尝试创建一个太空爆炸机游戏。 我已经创建了主场景,其中包括玩家精灵和附加的脚本 我可以创建一个对象的实例(一个项目符号),当按下空格键时,它会出现在主场景中。 当我尝试调用start_at()方法时,它找不到方法/函数。 基本节点2d中不存在函数“start_at()” extends Sprite # Declare member variables here. export var rot_speed = 2.6 export var thrust = 500 export var

我正在尝试创建一个太空爆炸机游戏。 我已经创建了主场景,其中包括玩家精灵和附加的脚本

我可以创建一个对象的实例(一个项目符号),当按下空格键时,它会出现在主场景中。 当我尝试调用start_at()方法时,它找不到方法/函数。 基本节点2d中不存在函数“start_at()”

extends Sprite

# Declare member variables here.
export var rot_speed = 2.6
export var thrust = 500
export var max_vel = 400
export var friction = 0.65
var bullet = preload("res://Scenes/Firing.tscn")

# Called when the node enters the scene tree for the first time.
func _ready():
    position = Vector2(get_viewport().size.x/2, get_viewport().size.y/2)


func _process(delta):
    rotation = self.rotation + deg2rad(90 * delta)
    ...

func shoot():
    var b = bullet.instance()
    #bullet_container.add_child(b)
    add_child(b)
    #b.set_position(position)
    #b.set_rotation(rot - PI/2)
    b.start_at(rotation, position)
中具有调用函数的项目符号的代码:

extends Area2D

# Declare member variables here. Examples:
var vel = Vector2()
export var speed = 1000

# Called when the node enters the scene tree for the first time.
func _ready():
    set_physics_process(true)


func _physics_process(delta):
    vel = vel * delta
    position = position + vel  * delta
    #position = position + vel * delta

# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
#   pass

func start_at(dir, pos):
    self.rotation = dir
    self.posiiton = pos
    vel = Vector2(speed, 0).rotated(dir)

请温柔一点,这是我第一次尝试使用Godot。

错误消息告诉我们,您正在调用的start_at()实例不是子弹。该实例也是Node2D类型,而不是Area2D。是现场吗`res://Scenes/Firing.tscn“正确的场景?可能项目符号脚本不在该场景的根目录上?

错误消息告诉我们,您正在调用的
start\u at()
上的实例不是项目符号。该实例的类型也是
Node2D
,而不是
Area2D
。是现场吗`res://Scenes/Firing.tscn“正确的场景?也许子弹脚本不是那场戏的根源?谢谢!!!我把脚本移到射击场景的根部,它调用了函数。现在我只需要让子弹移动!我很高兴能帮上忙!我将复制并粘贴评论作为答案,以便将问题标记为已回答。