Comets.gd/scripts/game.gd

44 lines
1.2 KiB
GDScript3
Raw Normal View History

extends Node2D
# TODO: Display a game over screen when the ship is hit by a comet with abilty to restart
# TODO: Make a space like background, maybe some scrolling, maybe randomly generated
# TODO: Make a small title screen that starts before the game scene
# TODO: MAYBE track high score in a file & show it on HUD
2024-05-13 08:15:21 -04:00
const COMET_SPAWNER = preload("res://scenes/comet_spawner.tscn")
@export var level : int = 1
2024-05-13 08:15:21 -04:00
var score : int = 0
var points_per_comet := 300
func _ready() -> void:
2024-05-13 08:15:21 -04:00
new_level(level)
func _process(_delta: float) -> void:
update_ui()
func new_level(current_level : int) -> void:
2024-05-13 08:15:21 -04:00
var comet_spawner := COMET_SPAWNER.instantiate()
comet_spawner.comet_count *= current_level
comet_spawner.comet_shot.connect(increase_score)
comet_spawner.screen_cleared.connect(level_finished)
self.add_child(comet_spawner)
func level_finished() -> void:
level += 1
new_level(level)
func game_over() -> void:
pass
func increase_score(comet_size : int) -> void:
# We add one since comet_size starts count at 0
comet_size += 1
score += points_per_comet / comet_size
func update_ui()-> void:
# Label strings must be all caps for font to render proper
$UI/Score.text = "SCORE: " + str(score)
$UI/Level.text = "LEVEL: " + str(level)