Godot Version
4.2.1
Question
For some reason when I transition to my battle scene from another scene, the bullets spawn in the top left corner. When i test my scene without transitioning to it it will spawn from the main enemy like it should. Your help is greatly appreciated! Here are videos below to show what I mean and my code for the enemy that spawns bullets:
Video of Bullets spawning in top left after scene transition:
Video of Bullets working properly without scene transition:
Bullet code I am using:
extends Node2D
const bullet_scene = preload(“res://scenes/Bullet.tscn”)
@onready var shoot_timer = $ShootTimer
@onready var rotater = $Rotater
const rotate_speed = 55
const shoot_timer_wait_time = 0.5
const spawn_point_count = 10
const radius = 20
func _ready():
$AnimatedSprite2D.play("idle")
func _process(delta):
if global.combat == true:
global.combat = false
_combat()
var new_rotation = rotater.rotation_degrees + rotate_speed * delta
rotater.rotation_degrees = fmod(new_rotation, 360)
func _combat():
var step = 2 * PI / spawn_point_count
for i in range(spawn_point_count):
var spawn_point = Node2D.new()
var pos = Vector2(radius, 0).rotated(step * i)
spawn_point.position = pos
spawn_point.rotation = pos.angle()
rotater.add_child(spawn_point)
shoot_timer.wait_time = shoot_timer_wait_time
shoot_timer.start()
await get_tree().create_timer(5).timeout
shoot_timer.stop()
func _on_ShootTimer_timeout() → void:
for s in rotater.get_children():
var bullet = bullet_scene.instantiate()
get_tree().root.add_child(bullet)
bullet.position = s.global_position
bullet.rotation = s.global_rotation