Tetris 10 – Game Over script

Open the ‘game_over.tscn‘ scene.

Select the ‘GameOver‘ node.

Attach a script.

extends Control

@export var final_score: int = 0
@export var final_highscore: int = 0
@export var total_lines: int = 0

@onready var score_label: Label = $CenterContainer/Panel/VBoxContainer/LabelScore
@onready var highscore_label: Label = $CenterContainer/Panel/VBoxContainer/LabelHighScore
@onready var lines_label: Label = $CenterContainer/Panel/VBoxContainer/LabelLines
@onready var retry_button: Button = $CenterContainer/Panel/VBoxContainer/HBoxContainer/ButtonAgain
@onready var quit_button: Button = $CenterContainer/Panel/VBoxContainer/HBoxContainer/ButtonQuit

func _ready() -> void:
	_update_labels()
	
	retry_button.pressed.connect(_on_retry_pressed)
	quit_button.pressed.connect(_on_quit_pressed)

func _update_labels() -> void:
	if score_label:
		score_label.text = "Score: %d" % final_score
	if highscore_label:
		highscore_label.text = "Highscore: %d" % final_highscore
	if lines_label:
		lines_label.text = "Lines: %d" % total_lines

func _on_retry_pressed() -> void:
	var main := get_tree().current_scene
	if main and main.has_method("reset_game"):
		main.reset_game()
	queue_free()  # remove overlay

func _on_quit_pressed() -> void:
	get_tree().quit()

Save the script as ‘game_over.gd‘.

Introduction


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *