diff --git a/Scenes/game_over.tscn b/Scenes/game_over.tscn index 1a2407a..901648f 100644 --- a/Scenes/game_over.tscn +++ b/Scenes/game_over.tscn @@ -59,9 +59,9 @@ layout_mode = 1 anchors_preset = 5 anchor_left = 0.5 anchor_right = 0.5 -offset_left = -46.5 -offset_top = 150.0 -offset_right = 46.5 -offset_bottom = 181.0 +offset_left = -75.0 +offset_top = 155.0 +offset_right = 75.0 +offset_bottom = 190.0 grow_horizontal = 2 text = "New Game" diff --git a/Scenes/main_menu.tscn b/Scenes/main_menu.tscn index 0ccec31..640b2b6 100644 --- a/Scenes/main_menu.tscn +++ b/Scenes/main_menu.tscn @@ -21,8 +21,8 @@ anchors_preset = 13 anchor_left = 0.5 anchor_right = 0.5 anchor_bottom = 1.0 -offset_top = -100.0 -offset_bottom = -100.0 +offset_top = -120.0 +offset_bottom = -120.0 grow_horizontal = 2 grow_vertical = 2 @@ -44,10 +44,10 @@ layout_mode = 1 anchors_preset = 5 anchor_left = 0.5 anchor_right = 0.5 -offset_left = -46.5 -offset_top = 111.0 -offset_right = 46.5 -offset_bottom = 142.0 +offset_left = -75.0 +offset_top = 105.0 +offset_right = 75.0 +offset_bottom = 140.0 grow_horizontal = 2 text = "New Game" @@ -56,9 +56,21 @@ layout_mode = 1 anchors_preset = 5 anchor_left = 0.5 anchor_right = 0.5 -offset_left = -46.5 -offset_top = 150.0 -offset_right = 46.5 -offset_bottom = 181.0 +offset_left = -75.0 +offset_top = 205.0 +offset_right = 75.0 +offset_bottom = 240.0 grow_horizontal = 2 text = "Quit" + +[node name="Credits" type="Button" parent="Container"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -75.0 +offset_top = 155.0 +offset_right = 75.0 +offset_bottom = 190.0 +grow_horizontal = 2 +text = "Credits" diff --git a/Scripts/game.gd b/Scripts/game.gd index 140b5ba..affcd4b 100644 --- a/Scripts/game.gd +++ b/Scripts/game.gd @@ -10,19 +10,17 @@ var player: CharacterBody2D var ui: CanvasLayer var game_over_ui: Control var menu_ui: Control +var credits_ui: Control var life_icon = preload("res://Scenes/life.tscn") var menu_scn = preload("res://Scenes/main_menu.tscn") +var credits_scn = preload("res://Scenes/credits.tscn") var game_over_scn = preload("res://Scenes/game_over.tscn") var ship = preload("res://Scenes/ship.tscn") var life = preload("res://Sounds/extra_life.wav") func _ready() -> void: - menu_ui = menu_scn.instantiate() - menu_ui.new_game.connect(_new_game) - menu_ui.quit_game.connect(_quit_game) - await get_tree().process_frame - ui.add_child(menu_ui) + _main_menu() func set_score(amount: int): score = amount @@ -84,5 +82,23 @@ func _new_game(): get_tree().current_scene.add_child(player) +func _credits(): + if menu_ui: + menu_ui.queue_free() + + credits_ui = credits_scn.instantiate() + credits_ui.connect("main_menu", _main_menu) + ui.add_child(credits_ui) + +func _main_menu(): + if credits_ui: + credits_ui.queue_free() + + menu_ui = menu_scn.instantiate() + menu_ui.new_game.connect(_new_game) + menu_ui.credits.connect(_credits) + menu_ui.quit_game.connect(_quit_game) + ui.add_child(menu_ui) + func _quit_game(): get_tree().quit() diff --git a/Scripts/main_menu.gd b/Scripts/main_menu.gd index c2d8321..3b51057 100644 --- a/Scripts/main_menu.gd +++ b/Scripts/main_menu.gd @@ -1,14 +1,16 @@ extends Control signal new_game +signal credits signal quit_game -func _ready(): - $"Container/New Game".pressed.connect(_emit_new) - $Container/Quit.pressed.connect(_emit_quit) - -func _emit_new(): - emit_signal("new_game") - -func _emit_quit(): - emit_signal("quit_game") +func _ready() -> void: + var buttons = { + "New Game": "new_game", + "Credits": "credits", + "Quit": "quit_game", + } + + for btn_name in buttons.keys(): + var btn = $Container.get_node(btn_name) + btn.pressed.connect(func(): emit_signal(buttons[btn_name])) diff --git a/Scripts/ship.gd b/Scripts/ship.gd index 60631ad..3a1a24e 100644 --- a/Scripts/ship.gd +++ b/Scripts/ship.gd @@ -74,7 +74,7 @@ func _physics_process(delta: float) -> void: last_shot = 0.0 func die(): - position = get_viewport_rect().size / 2 + position = get_viewport_rect().size speed = Vector2(0, 0) inv_time = 3.0