extends Node2D ## Settings page: fullscreen, hitbox viewer default, master volume. func _ready() -> void: var bg := ColorRect.new() bg.color = Color("#14161c") bg.size = Vector2(1280, 720) add_child(bg) var title := Label.new() title.text = "SETTINGS" title.add_theme_font_size_override("font_size", 48) title.position = Vector2(540, 80) add_child(title) var fs := CheckBox.new() fs.text = "Fullscreen" fs.button_pressed = Settings.fullscreen fs.position = Vector2(480, 220) fs.add_theme_font_size_override("font_size", 26) fs.toggled.connect(func(v): Settings.fullscreen = v; Settings.save()) add_child(fs) var boxes := CheckBox.new() boxes.text = "Show hitboxes (training)" boxes.button_pressed = Settings.show_boxes boxes.position = Vector2(480, 280) boxes.add_theme_font_size_override("font_size", 26) boxes.toggled.connect(func(v): Settings.show_boxes = v; Settings.save()) add_child(boxes) var vol_label := Label.new() vol_label.text = "Master volume" vol_label.position = Vector2(480, 360) vol_label.add_theme_font_size_override("font_size", 26) add_child(vol_label) var vol := HSlider.new() vol.min_value = 0 vol.max_value = 100 vol.value = Settings.volume vol.position = Vector2(480, 400) vol.size = Vector2(320, 30) vol.value_changed.connect(func(v): Settings.volume = v; Settings.save()) add_child(vol) var back := Button.new() back.text = "BACK (Esc)" back.position = Vector2(540, 520) back.size = Vector2(200, 52) back.add_theme_font_size_override("font_size", 24) back.pressed.connect(_back) add_child(back) func _back() -> void: get_tree().change_scene_to_file("res://engine/scenes/Title.tscn") func _input(event: InputEvent) -> void: if event is InputEventKey and event.pressed and event.keycode == KEY_ESCAPE: _back()