Ajout du menu principal et des paramètres. Attention : ça ne fonctionne pas

This commit is contained in:
E213872U 2025-01-24 08:58:24 +01:00
parent ffaa27de5c
commit 432f7ccc7a
28 changed files with 69743 additions and 19 deletions

View file

@ -0,0 +1,52 @@
extends Control
@onready var option_button = $HBoxContainer/OptionButton as OptionButton
const MODE_FENETRE_LISTE : Array[String] = [
"Plein écran",
"Fenetré",
"Fenetré sans bordure",
"Plein écran sans bordure"
]
# Called when the node enters the scene tree for the first time.
func _ready():
add_window_mode_items()
option_button.item_selected.connect(on_window_mode_selected)
set_default_status()
func set_default_status() -> void :
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_WINDOWED :
if DisplayServer.window_get_flag(DisplayServer.WINDOW_FLAG_BORDERLESS) :
option_button.select(2)
else :
option_button.select(1)
else :
if DisplayServer.window_get_flag(DisplayServer.WINDOW_FLAG_BORDERLESS) :
option_button.select(3)
else :
option_button.select(0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func add_window_mode_items() -> void:
for mode_fenetre in MODE_FENETRE_LISTE:
option_button.add_item(mode_fenetre)
func on_window_mode_selected (index : int) -> void :
match index:
0: #Fullscreen
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, false)
1: #Windowed
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, false)
2: #Windowed Borderless
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
3: #Fullscreen Borderless
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)

View file

@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://bql1rrrswwr0y"]
[ext_resource type="PackedScene" uid="uid://bbnto4k0qufd7" path="res://parametres/drop_menu/drop_menu_parametres.tscn" id="1_uosn5"]
[ext_resource type="Script" path="res://parametres/drop_menu/drop_menu_fenetre.gd" id="2_s8chm"]
[node name="Drop_Menu_Parametres_Feunetre" instance=ExtResource("1_uosn5")]
script = ExtResource("2_s8chm")
[node name="HBoxContainer" parent="." index="0"]
alignment = 1
[node name="Label" parent="HBoxContainer" index="1"]
text = "Mode d'affichage"

View file

@ -0,0 +1,50 @@
[gd_scene format=3 uid="uid://bbnto4k0qufd7"]
[node name="Drop_Menu_Parametres" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -375.0
offset_bottom = -586.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 42
[node name="VSeparator" type="VSeparator" parent="HBoxContainer"]
modulate = Color(1, 1, 1, 0)
self_modulate = Color(1, 1, 1, 0)
layout_mode = 2
size_flags_horizontal = 3
[node name="Label" type="Label" parent="HBoxContainer"]
custom_minimum_size = Vector2(264, 0)
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "TEXTE_PAR_DEFAUT"
vertical_alignment = 1
[node name="VSeparator2" type="VSeparator" parent="HBoxContainer"]
modulate = Color(1, 1, 1, 0)
self_modulate = Color(1, 1, 1, 0)
layout_mode = 2
[node name="OptionButton" type="OptionButton" parent="HBoxContainer"]
custom_minimum_size = Vector2(256, 64)
layout_mode = 2
theme_override_font_sizes/font_size = 32
[node name="VSeparator3" type="VSeparator" parent="HBoxContainer"]
modulate = Color(1, 1, 1, 0)
self_modulate = Color(1, 1, 1, 0)
layout_mode = 2
size_flags_horizontal = 3

View file

@ -0,0 +1,34 @@
extends Control
@onready var option_button = $HBoxContainer/OptionButton as OptionButton
const RESOLUTION_DICT : Dictionary = {
"1152 x 648" : Vector2i(1152, 648),
"1280 x 720" : Vector2i(1280, 720),
"1920 x 1080" : Vector2i(1920, 1080),
}
# Called when the node enters the scene tree for the first time.
func _ready():
add_resolution_items()
option_button.item_selected.connect(on_resolution_selected)
set_default_status()
func set_default_status() -> void :
if DisplayServer.window_get_size() == Vector2i(1280, 720) :
option_button.select(1)
elif DisplayServer.window_get_size() == Vector2i(1920, 1080):
option_button.select(2)
else :
option_button.select(0)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func add_resolution_items() -> void:
for resolution in RESOLUTION_DICT:
option_button.add_item(resolution)
func on_resolution_selected (index : int) -> void :
DisplayServer.window_set_size(RESOLUTION_DICT.values()[index])

View file

@ -0,0 +1,10 @@
[gd_scene load_steps=3 format=3 uid="uid://d30k33gvnoo46"]
[ext_resource type="PackedScene" uid="uid://bbnto4k0qufd7" path="res://parametres/drop_menu/drop_menu_parametres.tscn" id="1_ufhut"]
[ext_resource type="Script" path="res://parametres/drop_menu/drop_menu_resolution.gd" id="2_53mh2"]
[node name="Drop_Menu_Resolution" instance=ExtResource("1_ufhut")]
script = ExtResource("2_53mh2")
[node name="Label" parent="HBoxContainer" index="1"]
text = "Résolution"