Sporo drobnych zmian Proba implementacji rozdielczosci Poprawione błedy w sciazakch(exe sie nie opdlalł)
58 lines
1.5 KiB
GDScript
58 lines
1.5 KiB
GDScript
extends PopupPanel
|
|
|
|
@onready var fullscreen_checkbox = $VBoxContainer/CheckBox
|
|
@onready var resolution_dropdown = $VBoxContainer/Resolution
|
|
@onready var apply_button = $VBoxContainer/Apply
|
|
@onready var exit_button = $VBoxContainer/Exit
|
|
|
|
var resolutions = [
|
|
Vector2i(1280, 720),
|
|
Vector2i(1600, 900),
|
|
Vector2i(1920, 1080),
|
|
Vector2i(2560, 1440)
|
|
]
|
|
|
|
func _ready():
|
|
# Stan checkboxa fullscreen
|
|
fullscreen_checkbox.button_pressed = DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN
|
|
|
|
# Połączenia
|
|
apply_button.pressed.connect(_on_apply_pressed)
|
|
exit_button.pressed.connect(_on_close_pressed)
|
|
|
|
# Wypełnienie listy rozdzielczości
|
|
for res in resolutions:
|
|
resolution_dropdown.add_item("%d x %d" % [res.x, res.y])
|
|
|
|
# Wybór aktualnej
|
|
var current_size = DisplayServer.window_get_size()
|
|
for i in range(resolutions.size()):
|
|
if resolutions[i] == current_size:
|
|
resolution_dropdown.select(i)
|
|
break
|
|
|
|
func _on_apply_pressed():
|
|
var selected = resolution_dropdown.get_selected_id()
|
|
var new_size = resolutions[selected]
|
|
|
|
if fullscreen_checkbox.button_pressed:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
|
|
else:
|
|
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
|
|
|
|
# Pobierz główne okno gry (root)
|
|
var main_window = get_tree().root.get_window()
|
|
main_window.size = new_size
|
|
|
|
# Wyśrodkuj
|
|
var screen_size = DisplayServer.screen_get_size()
|
|
main_window.position = (screen_size - new_size) / 2
|
|
|
|
print("Zmieniono ROZMIAR OKNA GRY na:", new_size)
|
|
hide()
|
|
|
|
|
|
|
|
func _on_close_pressed():
|
|
hide()
|