Improved UI and Added Settings
This commit is contained in:
parent
86131d8430
commit
ed964981cc
6 changed files with 411 additions and 72 deletions
355
Assets/Base.tres
355
Assets/Base.tres
File diff suppressed because one or more lines are too long
BIN
Assets/tile_selected.png
Normal file
BIN
Assets/tile_selected.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 150 B |
34
Assets/tile_selected.png.import
Normal file
34
Assets/tile_selected.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://nimd0066t7qm"
|
||||||
|
path="res://.godot/imported/tile_selected.png-b6ca25c977e696fcf5a4350cf08a3708.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/tile_selected.png"
|
||||||
|
dest_files=["res://.godot/imported/tile_selected.png-b6ca25c977e696fcf5a4350cf08a3708.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
|
@ -85,10 +85,55 @@ text = "Quit"
|
||||||
[node name="Settings" type="VBoxContainer" parent="MarginContainer/VBoxContainer/Tab Group"]
|
[node name="Settings" type="VBoxContainer" parent="MarginContainer/VBoxContainer/Tab Group"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="HSlider" type="HSlider" parent="MarginContainer/VBoxContainer/Tab Group/Settings"]
|
[node name="GridSize" type="HBoxContainer" parent="MarginContainer/VBoxContainer/Tab Group/Settings"]
|
||||||
custom_minimum_size = Vector2(0, 32)
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/Tab Group/Settings/GridSize"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("1_b1d2h")
|
theme = ExtResource("1_b1d2h")
|
||||||
|
theme_override_font_sizes/font_size = 64
|
||||||
|
text = "Grid Size "
|
||||||
|
|
||||||
|
[node name="GridSize_Slider" type="HSlider" parent="MarginContainer/VBoxContainer/Tab Group/Settings/GridSize"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 4
|
||||||
|
theme = ExtResource("1_b1d2h")
|
||||||
|
min_value = 6.0
|
||||||
|
max_value = 32.0
|
||||||
|
value = 10.0
|
||||||
|
rounded = true
|
||||||
|
|
||||||
|
[node name="Value" type="Label" parent="MarginContainer/VBoxContainer/Tab Group/Settings/GridSize"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme = ExtResource("1_b1d2h")
|
||||||
|
theme_override_font_sizes/font_size = 64
|
||||||
|
text = "00"
|
||||||
|
|
||||||
|
[node name="Speed" type="HBoxContainer" parent="MarginContainer/VBoxContainer/Tab Group/Settings"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/Tab Group/Settings/Speed"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme = ExtResource("1_b1d2h")
|
||||||
|
theme_override_font_sizes/font_size = 64
|
||||||
|
text = "Speed "
|
||||||
|
|
||||||
|
[node name="Speed_Slider" type="HSlider" parent="MarginContainer/VBoxContainer/Tab Group/Settings/Speed"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 4
|
||||||
|
theme = ExtResource("1_b1d2h")
|
||||||
|
min_value = 0.25
|
||||||
|
max_value = 5.0
|
||||||
|
step = 0.25
|
||||||
|
value = 1.0
|
||||||
|
|
||||||
|
[node name="Value" type="Label" parent="MarginContainer/VBoxContainer/Tab Group/Settings/Speed"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme = ExtResource("1_b1d2h")
|
||||||
|
theme_override_font_sizes/font_size = 64
|
||||||
|
text = "00"
|
||||||
|
|
||||||
[node name="Back Button" type="Button" parent="MarginContainer/VBoxContainer/Tab Group/Settings"]
|
[node name="Back Button" type="Button" parent="MarginContainer/VBoxContainer/Tab Group/Settings"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
@ -100,4 +145,6 @@ text = "Back"
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Menu Butons/Settings Button" to="." method="_on_settings_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Menu Butons/Settings Button" to="." method="_on_settings_button_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Menu Butons/About Button" to="." method="_on_about_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Menu Butons/About Button" to="." method="_on_about_button_pressed"]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Menu Butons/Quit Button" to="." method="_on_quit_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Menu Butons/Quit Button" to="." method="_on_quit_button_pressed"]
|
||||||
|
[connection signal="value_changed" from="MarginContainer/VBoxContainer/Tab Group/Settings/GridSize/GridSize_Slider" to="." method="_on_grid_size_slider_value_changed"]
|
||||||
|
[connection signal="value_changed" from="MarginContainer/VBoxContainer/Tab Group/Settings/Speed/Speed_Slider" to="." method="_on_speed_slider_value_changed"]
|
||||||
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Settings/Back Button" to="." method="_on_back_button_pressed"]
|
[connection signal="pressed" from="MarginContainer/VBoxContainer/Tab Group/Settings/Back Button" to="." method="_on_back_button_pressed"]
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
extends GridContainer
|
extends GridContainer
|
||||||
|
|
||||||
|
var config = ConfigFile.new()
|
||||||
|
|
||||||
@export var map_size := 15
|
@export var map_size := 15
|
||||||
@export var texture : Texture2D
|
@export var texture : Texture2D
|
||||||
@export var speed := 0.25
|
@export var speed := 0.25
|
||||||
|
@ -94,6 +96,14 @@ func process_snake_rotation():
|
||||||
snake_move_vector = input.normalized()
|
snake_move_vector = input.normalized()
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
#load Config
|
||||||
|
var err = config.load("user://config.cfg")
|
||||||
|
if err != OK:
|
||||||
|
return
|
||||||
|
map_size = config.get_value("Game Play", "grid_size", 10)
|
||||||
|
speed = float(config.get_value("Game Play", "speed", 1))
|
||||||
|
print(speed)
|
||||||
|
|
||||||
game_start()
|
game_start()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -116,7 +126,7 @@ func _process(delta):
|
||||||
if !game_is_running:
|
if !game_is_running:
|
||||||
return
|
return
|
||||||
process_snake_rotation()
|
process_snake_rotation()
|
||||||
if(timer >= speed):
|
if(timer * speed >= 0.25):
|
||||||
timer = 0
|
timer = 0
|
||||||
process_tiles()
|
process_tiles()
|
||||||
timer += delta
|
timer += delta
|
||||||
|
|
|
@ -1,14 +1,32 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
@onready var game_scene = load("res://Scene/Game.tscn").instantiate()
|
@onready var game_scene = load("res://Scene/Game.tscn").instantiate()
|
||||||
|
var config = ConfigFile.new()
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
# Set Default Focus
|
||||||
$"MarginContainer/VBoxContainer/Tab Group/Menu Butons/Start Button".grab_focus()
|
$"MarginContainer/VBoxContainer/Tab Group/Menu Butons/Start Button".grab_focus()
|
||||||
|
|
||||||
|
#load Config
|
||||||
|
var err = config.load("user://config.cfg")
|
||||||
|
if err != OK:
|
||||||
|
return
|
||||||
|
# Read Config
|
||||||
|
$"MarginContainer/VBoxContainer/Tab Group/Settings/GridSize/GridSize_Slider".value = config.get_value("Game Play", "grid_size", 10)
|
||||||
|
$"MarginContainer/VBoxContainer/Tab Group/Settings/Speed/Speed_Slider".value = config.get_value("Game Play", "speed", 1)
|
||||||
|
|
||||||
|
# Apply Values to UI
|
||||||
|
$"MarginContainer/VBoxContainer/Tab Group/Settings/GridSize/Value".text = " " + str(int($"MarginContainer/VBoxContainer/Tab Group/Settings/GridSize/GridSize_Slider".value))
|
||||||
|
$"MarginContainer/VBoxContainer/Tab Group/Settings/Speed/Value".text = "%10.2f" % $"MarginContainer/VBoxContainer/Tab Group/Settings/Speed/Speed_Slider".value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_start_button_pressed():
|
func _on_start_button_pressed():
|
||||||
get_tree().change_scene_to_file("res://Scene/Game.tscn")
|
get_tree().change_scene_to_file("res://Scene/Game.tscn")
|
||||||
|
|
||||||
func _on_quit_button_pressed():
|
func _on_quit_button_pressed():
|
||||||
|
#config.clear()
|
||||||
|
#config.save("user://config.cfg")
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,3 +42,14 @@ func _on_settings_button_pressed():
|
||||||
func _on_back_button_pressed():
|
func _on_back_button_pressed():
|
||||||
$"MarginContainer/VBoxContainer/Tab Group".current_tab = 0
|
$"MarginContainer/VBoxContainer/Tab Group".current_tab = 0
|
||||||
$"MarginContainer/VBoxContainer/Tab Group/Menu Butons/Start Button".grab_focus()
|
$"MarginContainer/VBoxContainer/Tab Group/Menu Butons/Start Button".grab_focus()
|
||||||
|
|
||||||
|
func _on_grid_size_slider_value_changed(value):
|
||||||
|
$"MarginContainer/VBoxContainer/Tab Group/Settings/GridSize/Value".text = " " + str(int(value))
|
||||||
|
config.set_value("Game Play", "grid_size", int(value))
|
||||||
|
config.save("user://config.cfg")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_speed_slider_value_changed(value):
|
||||||
|
$"MarginContainer/VBoxContainer/Tab Group/Settings/Speed/Value".text = "%10.2f" % value
|
||||||
|
config.set_value("Game Play", "speed", value)
|
||||||
|
config.save("user://config.cfg")
|
||||||
|
|
Loading…
Reference in a new issue