july-game/scripts/scene_manager.gd

32 lines
879 B
GDScript

class_name SceneManager extends Node2D
const bullet_scene = preload("res://scenes/bullet.tscn")
@onready var game: Node2D = $".."
var MAX_BULLET := 50
var available_bullets = []
func _ready() -> void:
for i in range(MAX_BULLET):
var new_bullet = bullet_scene.instantiate()
new_bullet.bulletHitSignal.connect(game.onBulletHitSignal)
available_bullets.push_front(new_bullet)
func make_bullet(start_position: Transform2D, speed: int):
var new_bullet = bullet_factory(start_position, speed)
if new_bullet:
owner.add_child(new_bullet)
func reload_bullet(bullet: Bullet):
available_bullets.push(bullet)
func bullet_factory(start_position: Transform2D, speed: int) -> Bullet:
var shot_bullet = available_bullets.pop_back()
shot_bullet.global_transform = start_position
shot_bullet.setSpeed(speed)
available_bullets.push_front(shot_bullet)
return shot_bullet