/
mrFeld
/
Platformer
Обзор
Документация
Войти
/
mrFeld
/
Platformer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Script/UI/Menu/menu.gd
113 строк
4 KB
Neterov Vladimir
nonstable
25 окт 2025, 13:32
25 окт 2025, 13:32
8f17866
Код
Авторство
О чём код?
extends Node2D func _on_exit_pressed() -> void: get_tree().quit() func _on_play_pressed() -> void: $MainMenu/LevelSelection.show() func show_and_hide(first, second): first.hide() second.show() func _on_settings_pressed() -> void: show_and_hide($MainMenu, $Options) func _on_back_to_options_pressed() -> void: show_and_hide($Options, $MainMenu) func _on_video_pressed() -> void: if $Options/AudioSettings.is_visible_in_tree(): show_and_hide($Options/AudioSettings, $Options/VideoSettings) else: show_and_hide($Options/ControlSettings, $Options/VideoSettings) func _on_audio_pressed() -> void: if $Options/VideoSettings.is_visible_in_tree(): show_and_hide($Options/VideoSettings, $Options/AudioSettings) else: show_and_hide($Options/ControlSettings, $Options/AudioSettings) func _on_control_pressed() -> void: if $Options/AudioSettings.is_visible_in_tree(): show_and_hide($Options/AudioSettings, $Options/ControlSettings) else: show_and_hide($Options/VideoSettings, $Options/ControlSettings) func _on_fullscreen_toggled(toggled_on: bool) -> void: if toggled_on: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) Persistence.config.set_value("Video", "fullscreen", DisplayServer.WINDOW_MODE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) Persistence.config.set_value("Video", "fullscreen", DisplayServer.WINDOW_MODE_WINDOWED) Persistence.save_data() func _on_vsync_toggled(toggled_on: bool) -> void: if toggled_on: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) Persistence.config.set_value("Video", "vsync", DisplayServer.VSYNC_ENABLED) else: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) Persistence.config.set_value("Video", "vsync", DisplayServer.VSYNC_DISABLED) Persistence.save_data() func _on_borderless_toggled(toggled_on: bool) -> void: DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, toggled_on) Persistence.config.set_value("Video", "borderless", toggled_on) Persistence.save_data() func _on_brightness_slider_value_changed(value: float) -> void: GlobalWorldEnvironment.environment.adjustment_brightness = value Persistence.config.set_value("Video", "brightness", value) Persistence.save_data() func _on_master_value_changed(value: float) -> void: volume(0, value) func _on_music_value_changed(value: float) -> void: volume(1, value) func _on_sound_fx_value_changed(value: float) -> void: volume(2, value) func volume(bus_index, value): AudioServer.set_bus_volume_db(bus_index, linear_to_db(value)) Persistence.config.set_value("Audio", str(bus_index), value) Persistence.save_data() func _ready() -> void: var screen_type = Persistence.config.get_value("Video", "fullscreen") if screen_type == DisplayServer.WINDOW_MODE_FULLSCREEN: %Fullscreen.button_pressed = true var borderless_type = Persistence.config.get_value("Video", "borderless") if borderless_type == true: %Borderless.button_pressed = true var vsync_type = Persistence.config.get_value("Video", "vsync") if vsync_type == DisplayServer.VSYNC_ENABLED: %Vsync.button_pressed = true %BrightnessSlider.value = Persistence.config.get_value("Video", 'brightness') GlobalWorldEnvironment.environment.adjustment_brightness = %BrightnessSlider.value %Master.value = Persistence.config.get_value("Audio", '0') AudioServer.set_bus_volume_db(0, linear_to_db(%Master.value)) %Music.value = Persistence.config.get_value("Audio", '1') AudioServer.set_bus_volume_db(0, linear_to_db(%Music.value)) %SoundFX.value = Persistence.config.get_value("Audio", '2') AudioServer.set_bus_volume_db(0, linear_to_db(%SoundFX.value)) func _on_level_1_pressed() -> void: $MainMenu/LevelSelection.hide() get_tree().change_scene_to_file("res://Scene/main.tscn") func _on_level_2_pressed() -> void: $MainMenu/LevelSelection.hide() get_tree().change_scene_to_file("res://Scene/Levels/level_2.tscn")