Я пытаюсь создать шутер с видом сверху с игроком и пулей на отдельной сцене. Но всякий раз, когда я запускаю игру, она говорит
Попытка вызвать функцию «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)
И я также не думаю, что понимаю, как работает создание экземпляров, поэтому мои вопросы:
- Как работает создание экземпляров?
- Что приводит к сбою вышеуказанной функции?
Attempt to call function 'get_position' in base 'null instance' on a null instance
означает, что система не может найти то, что вы запрашиваете. Попробуйте изменить свойvar bullet
наonready var bullet
. Если по-прежнему не работает, попробуйте изменитьb.set_position(position)
наb.position = position
. - person Christopher Bennett   schedule 15.08.2019get_parent().add_child(b)
- person Christopher Bennett   schedule 15.08.2019