Godot3 Как я могу вызвать метод объекта, созданного в другой сцене - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь создать игру Space Blaster. Я создал основную сцену, которая включает в себя спрайт игрока и прикрепленный скрипт.

Я могу создать экземпляр объекта (пули), и он появится в главной сцене при нажатии клавиши пробела. Когда я пытаюсь вызвать метод start_at (), он не может найти метод / функцию. несуществующая функция 'start_at ()' в базовом Node2D

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)

Пожалуйста, будьте осторожны, это моя первая попытка с Годо.

1 Ответ

0 голосов
/ 18 января 2020

Сообщение об ошибке говорит нам, что экземпляр, для которого вы вызываете start_at (), не является маркером. Экземпляр также имеет тип Node2D, а не Area2D. Является ли сцена `res: //Scenes/Firing.tscn 'правильной сценой? Может быть, сценарий пули находится не на root этой сцены?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...