Я пытаюсь создать игру 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)
Пожалуйста, будьте осторожны, это моя первая попытка с Годо.