implemented level select, options menu, different audio buses & sliders
This commit is contained in:
parent
17085c5148
commit
f51914161e
14 changed files with 485 additions and 46 deletions
15
default_bus_layout.tres
Normal file
15
default_bus_layout.tres
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_resource type="AudioBusLayout" format=3 uid="uid://c5151ugetnkpy"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
bus/1/name = &"Music"
|
||||||
|
bus/1/solo = false
|
||||||
|
bus/1/mute = false
|
||||||
|
bus/1/bypass_fx = false
|
||||||
|
bus/1/volume_db = 0.0
|
||||||
|
bus/1/send = &"Master"
|
||||||
|
bus/2/name = &"Sfx"
|
||||||
|
bus/2/solo = false
|
||||||
|
bus/2/mute = false
|
||||||
|
bus/2/bypass_fx = false
|
||||||
|
bus/2/volume_db = 0.0
|
||||||
|
bus/2/send = &"Master"
|
|
@ -1,13 +1,13 @@
|
||||||
[gd_scene load_steps=10 format=3 uid="uid://c77xk0mywwt5f"]
|
[gd_scene load_steps=10 format=3 uid="uid://c77xk0mywwt5f"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/game/level.gd" id="1_hv75i"]
|
[ext_resource type="Script" path="res://src/game/levels/level.gd" id="1_s3rsn"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ckau5s2tsb3oc" path="res://src/game/player.tscn" id="2_5nf51"]
|
[ext_resource type="Texture2D" uid="uid://dio3rrptd6w7c" path="res://assets/bg2.png" id="2_57sr6"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dio3rrptd6w7c" path="res://assets/bg2.png" id="2_bk3ik"]
|
[ext_resource type="Texture2D" uid="uid://ds0un04pocx6i" path="res://assets/track90.png" id="3_en5wc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cdlbh3smpgg42" path="res://src/game/hud.tscn" id="2_w64nx"]
|
[ext_resource type="Texture2D" uid="uid://dmcrms0qu0mtt" path="res://assets/finish2.png" id="4_qeube"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ds0un04pocx6i" path="res://assets/track90.png" id="3_jtw40"]
|
[ext_resource type="PackedScene" uid="uid://ckau5s2tsb3oc" path="res://src/game/player.tscn" id="5_2n8nj"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dmcrms0qu0mtt" path="res://assets/finish2.png" id="4_rxurh"]
|
[ext_resource type="PackedScene" uid="uid://cdlbh3smpgg42" path="res://src/gui/hud/hud.tscn" id="6_r1i0q"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bq151lkkfdlf4" path="res://assets/sign.png" id="7_g24mp"]
|
[ext_resource type="Texture2D" uid="uid://bq151lkkfdlf4" path="res://assets/sign.png" id="7_xmahe"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dh5jxxwim7ra8" path="res://assets/sounds/music/death_by_waveshaper.wav" id="8_ppkte"]
|
[ext_resource type="AudioStream" uid="uid://dh5jxxwim7ra8" path="res://assets/sounds/music/death_by_waveshaper.wav" id="8_qlkhp"]
|
||||||
|
|
||||||
[sub_resource type="Curve2D" id="Curve2D_ll8bj"]
|
[sub_resource type="Curve2D" id="Curve2D_ll8bj"]
|
||||||
_data = {
|
_data = {
|
||||||
|
@ -16,7 +16,7 @@ _data = {
|
||||||
point_count = 7
|
point_count = 7
|
||||||
|
|
||||||
[node name="level1" type="Node2D" node_paths=PackedStringArray("path", "line", "player", "finish")]
|
[node name="level1" type="Node2D" node_paths=PackedStringArray("path", "line", "player", "finish")]
|
||||||
script = ExtResource("1_hv75i")
|
script = ExtResource("1_s3rsn")
|
||||||
starting_width = 400.0
|
starting_width = 400.0
|
||||||
shrink_factor = 5.0
|
shrink_factor = 5.0
|
||||||
path = NodePath("TrackPath")
|
path = NodePath("TrackPath")
|
||||||
|
@ -31,7 +31,7 @@ offset_top = -3355.0
|
||||||
offset_right = 19845.0
|
offset_right = 19845.0
|
||||||
offset_bottom = 12825.0
|
offset_bottom = 12825.0
|
||||||
scale = Vector2(0.5, 0.5)
|
scale = Vector2(0.5, 0.5)
|
||||||
texture = ExtResource("2_bk3ik")
|
texture = ExtResource("2_57sr6")
|
||||||
stretch_mode = 1
|
stretch_mode = 1
|
||||||
|
|
||||||
[node name="TrackPath" type="Path2D" parent="."]
|
[node name="TrackPath" type="Path2D" parent="."]
|
||||||
|
@ -40,47 +40,82 @@ curve = SubResource("Curve2D_ll8bj")
|
||||||
[node name="TrackLine" type="Line2D" parent="."]
|
[node name="TrackLine" type="Line2D" parent="."]
|
||||||
self_modulate = Color(0.164706, 0.658824, 0.858824, 1)
|
self_modulate = Color(0.164706, 0.658824, 0.858824, 1)
|
||||||
texture_repeat = 2
|
texture_repeat = 2
|
||||||
texture = ExtResource("3_jtw40")
|
texture = ExtResource("3_en5wc")
|
||||||
texture_mode = 2
|
texture_mode = 2
|
||||||
begin_cap_mode = 2
|
begin_cap_mode = 2
|
||||||
|
|
||||||
[node name="FinishLine" type="Line2D" parent="."]
|
[node name="FinishLine" type="Line2D" parent="."]
|
||||||
texture_repeat = 2
|
texture_repeat = 2
|
||||||
width = 40.0
|
width = 40.0
|
||||||
texture = ExtResource("4_rxurh")
|
texture = ExtResource("4_qeube")
|
||||||
texture_mode = 1
|
texture_mode = 1
|
||||||
begin_cap_mode = 2
|
begin_cap_mode = 2
|
||||||
end_cap_mode = 2
|
end_cap_mode = 2
|
||||||
round_precision = 32
|
round_precision = 32
|
||||||
antialiased = true
|
antialiased = true
|
||||||
|
|
||||||
[node name="player" parent="." instance=ExtResource("2_5nf51")]
|
[node name="player" parent="." instance=ExtResource("5_2n8nj")]
|
||||||
position = Vector2(27, -55)
|
position = Vector2(27, -55)
|
||||||
brake_strength = 800.0
|
brake_strength = 800.0
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
[node name="hud" parent="CanvasLayer" instance=ExtResource("2_w64nx")]
|
[node name="hud" parent="CanvasLayer" instance=ExtResource("6_r1i0q")]
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
[node name="curveSign" type="PointLight2D" parent="."]
|
[node name="Node2D" type="Node2D" parent="."]
|
||||||
position = Vector2(-1914, -560)
|
|
||||||
scale = Vector2(0.1, 0.1)
|
|
||||||
color = Color(1, 0.0627451, 0.694118, 1)
|
|
||||||
energy = 20.0
|
|
||||||
texture = ExtResource("7_g24mp")
|
|
||||||
|
|
||||||
[node name="curveSign2" type="PointLight2D" parent="."]
|
[node name="curveSign3" type="PointLight2D" parent="Node2D"]
|
||||||
position = Vector2(-1997, -491)
|
position = Vector2(-1720, 2263)
|
||||||
scale = Vector2(0.1, 0.1)
|
rotation = -1.182
|
||||||
color = Color(1, 0.0627451, 0.694118, 1)
|
scale = Vector2(0.3, 0.3)
|
||||||
|
color = Color(0.690196, 0.545098, 0.0509804, 1)
|
||||||
energy = 20.0
|
energy = 20.0
|
||||||
texture = ExtResource("7_g24mp")
|
texture = ExtResource("7_xmahe")
|
||||||
|
|
||||||
|
[node name="curveSign" type="PointLight2D" parent="Node2D"]
|
||||||
|
position = Vector2(-2040, 2122)
|
||||||
|
rotation = -1.27745
|
||||||
|
scale = Vector2(0.3, 0.3)
|
||||||
|
color = Color(0.690196, 0.545098, 0.0509804, 1)
|
||||||
|
energy = 20.0
|
||||||
|
texture = ExtResource("7_xmahe")
|
||||||
|
|
||||||
|
[node name="curveSign2" type="PointLight2D" parent="Node2D"]
|
||||||
|
position = Vector2(-2337, -124)
|
||||||
|
scale = Vector2(0.3, 0.3)
|
||||||
|
color = Color(0.933333, 0, 0.0235294, 1)
|
||||||
|
energy = 20.0
|
||||||
|
texture = ExtResource("7_xmahe")
|
||||||
|
|
||||||
|
[node name="curveSign4" type="PointLight2D" parent="Node2D"]
|
||||||
|
position = Vector2(-2447, 113)
|
||||||
|
scale = Vector2(0.3, 0.3)
|
||||||
|
color = Color(0.933333, 0, 0.0235294, 1)
|
||||||
|
energy = 20.0
|
||||||
|
texture = ExtResource("7_xmahe")
|
||||||
|
|
||||||
|
[node name="curveSign5" type="PointLight2D" parent="Node2D"]
|
||||||
|
position = Vector2(2664, -97.0001)
|
||||||
|
rotation = 1.74374
|
||||||
|
scale = Vector2(0.3, 0.3)
|
||||||
|
color = Color(0.690196, 0.545098, 0.0509804, 1)
|
||||||
|
energy = 20.0
|
||||||
|
texture = ExtResource("7_xmahe")
|
||||||
|
|
||||||
|
[node name="curveSign6" type="PointLight2D" parent="Node2D"]
|
||||||
|
position = Vector2(2899, 56)
|
||||||
|
rotation = 2.04177
|
||||||
|
scale = Vector2(0.3, 0.3)
|
||||||
|
color = Color(0.690196, 0.545098, 0.0509804, 1)
|
||||||
|
energy = 20.0
|
||||||
|
texture = ExtResource("7_xmahe")
|
||||||
|
|
||||||
[node name="level_music" type="AudioStreamPlayer" parent="."]
|
[node name="level_music" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource("8_ppkte")
|
stream = ExtResource("8_qlkhp")
|
||||||
volume_db = -29.953
|
volume_db = -29.953
|
||||||
autoplay = true
|
autoplay = true
|
||||||
|
bus = &"Music"
|
||||||
|
|
||||||
[connection signal="distance_changed" from="." to="CanvasLayer/hud" method="_on_level_distance_changed"]
|
[connection signal="distance_changed" from="." to="CanvasLayer/hud" method="_on_level_distance_changed"]
|
||||||
[connection signal="speed_changed" from="player" to="CanvasLayer/hud" method="_on_player_speed_changed"]
|
[connection signal="speed_changed" from="player" to="CanvasLayer/hud" method="_on_player_speed_changed"]
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=8 format=3 uid="uid://ckau5s2tsb3oc"]
|
[gd_scene load_steps=9 format=3 uid="uid://ckau5s2tsb3oc"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/game/player_controller.gd" id="1_g4ij8"]
|
[ext_resource type="Script" path="res://src/game/player_controller.gd" id="1_g4ij8"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bx4nammvn7hea" path="res://assets/vehicle2.png" id="2_ifw0w"]
|
[ext_resource type="Texture2D" uid="uid://bx4nammvn7hea" path="res://assets/vehicle2.png" id="2_ifw0w"]
|
||||||
|
@ -55,13 +55,16 @@ rotation_smoothing_speed = 10.0
|
||||||
|
|
||||||
[node name="engine_sounds" type="AudioStreamPlayer" parent="."]
|
[node name="engine_sounds" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource("4_4ajo8")
|
stream = ExtResource("4_4ajo8")
|
||||||
volume_db = -40.467
|
volume_db = -30.204
|
||||||
autoplay = true
|
autoplay = true
|
||||||
|
bus = &"Sfx"
|
||||||
|
|
||||||
[node name="damage_sounds" type="AudioStreamPlayer" parent="."]
|
[node name="damage_sounds" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource("5_rvolc")
|
stream = ExtResource("5_rvolc")
|
||||||
volume_db = -25.297
|
volume_db = -25.297
|
||||||
|
bus = &"Sfx"
|
||||||
|
|
||||||
[node name="death_sound" type="AudioStreamPlayer" parent="."]
|
[node name="death_sound" type="AudioStreamPlayer" parent="."]
|
||||||
stream = ExtResource("6_i0vg5")
|
stream = ExtResource("6_i0vg5")
|
||||||
volume_db = -25.297
|
volume_db = -25.297
|
||||||
|
bus = &"Sfx"
|
||||||
|
|
|
@ -44,7 +44,7 @@ func _process(delta):
|
||||||
|
|
||||||
if !dead:
|
if !dead:
|
||||||
var acc_d = acc * delta
|
var acc_d = acc * delta
|
||||||
var rev_d = rev * delta
|
# var rev_d = rev * delta
|
||||||
var turn_d = turn_speed * delta
|
var turn_d = turn_speed * delta
|
||||||
var brake_d = brake_strength * delta
|
var brake_d = brake_strength * delta
|
||||||
var turn_factor = 1
|
var turn_factor = 1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://cdlbh3smpgg42"]
|
[gd_scene load_steps=4 format=3 uid="uid://cdlbh3smpgg42"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/game/hud_controller.gd" id="1_ckegs"]
|
[ext_resource type="Script" path="res://src/gui/hud/hud_controller.gd" id="1_3pkgo"]
|
||||||
|
|
||||||
[sub_resource type="LabelSettings" id="LabelSettings_pv71o"]
|
[sub_resource type="LabelSettings" id="LabelSettings_pv71o"]
|
||||||
font_size = 40
|
font_size = 40
|
||||||
|
@ -15,7 +15,7 @@ anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_ckegs")
|
script = ExtResource("1_3pkgo")
|
||||||
speed = NodePath("Speedometer")
|
speed = NodePath("Speedometer")
|
||||||
distance = NodePath("Distancemeter")
|
distance = NodePath("Distancemeter")
|
||||||
|
|
12
src/gui/menu/level.tscn
Normal file
12
src/gui/menu/level.tscn
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://dyo5dblkfivwn"]
|
||||||
|
|
||||||
|
[ext_resource type="Theme" uid="uid://dpktnl3r5wul1" path="res://src/gui/menu_theme.tres" id="1_62uke"]
|
||||||
|
|
||||||
|
[node name="level" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("1_62uke")
|
|
@ -1,5 +1,8 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
@export var main_menu: Control
|
||||||
|
@export var level_select: Control
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
|
@ -12,12 +15,24 @@ func _process(delta):
|
||||||
|
|
||||||
|
|
||||||
func _on_start_button_pressed():
|
func _on_start_button_pressed():
|
||||||
get_tree().change_scene("res://game/main.tscn")
|
# get_tree().change_scene("res://game/main.tscn")
|
||||||
|
main_menu.hide()
|
||||||
|
level_select.show()
|
||||||
|
|
||||||
|
|
||||||
func _on_options_button_pressed():
|
func _on_options_button_pressed():
|
||||||
var options = load("res://menu/options.tscn").instance()
|
var options = load("res://src/gui/menu/options.tscn").instantiate()
|
||||||
get_tree().current_scene.add_child((options))
|
get_tree().current_scene.add_child((options))
|
||||||
|
|
||||||
func _on_quit_button_pressed():
|
func _on_quit_button_pressed():
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
|
func _on_back_button_pressed():
|
||||||
|
level_select.hide()
|
||||||
|
main_menu.show()
|
||||||
|
|
||||||
|
func _on_level_button_pressed(level:int):
|
||||||
|
load_level("res://src/game/levels/level_%s.tscn" % level)
|
||||||
|
|
||||||
|
func load_level(path: String):
|
||||||
|
get_tree().change_scene_to_file(path)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://bgtkxeh3lciik"]
|
[gd_scene load_steps=8 format=3 uid="uid://bgtkxeh3lciik"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/gui/menu/main.gd" id="1_p5r7q"]
|
[ext_resource type="Script" path="res://src/gui/menu/main.gd" id="1_p5r7q"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dh5jxxwim7ra8" path="res://assets/sounds/music/death_by_waveshaper.wav" id="2_yc480"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2u7je"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2u7je"]
|
||||||
bg_color = Color(1, 1, 1, 1)
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
@ -35,25 +36,37 @@ corner_radius_top_right = 5
|
||||||
corner_radius_bottom_right = 5
|
corner_radius_bottom_right = 5
|
||||||
corner_radius_bottom_left = 5
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5it3g"]
|
||||||
|
bg_color = Color(0, 0, 0, 1)
|
||||||
|
corner_radius_top_left = 10
|
||||||
|
corner_radius_top_right = 10
|
||||||
|
corner_radius_bottom_right = 10
|
||||||
|
corner_radius_bottom_left = 10
|
||||||
|
|
||||||
[sub_resource type="Theme" id="Theme_67fiq"]
|
[sub_resource type="Theme" id="Theme_67fiq"]
|
||||||
Button/colors/font_color = Color(0, 0, 0, 1)
|
Button/colors/font_color = Color(0, 0, 0, 1)
|
||||||
Button/colors/font_focus_color = Color(0, 0, 0, 1)
|
Button/colors/font_focus_color = Color(0, 0, 0, 1)
|
||||||
Button/colors/font_hover_color = Color(0, 0, 0, 1)
|
Button/colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
Button/colors/font_hover_pressed_color = Color(0, 0, 0, 1)
|
Button/colors/font_hover_pressed_color = Color(1, 1, 1, 1)
|
||||||
Button/colors/font_pressed_color = Color(1, 1, 1, 1)
|
Button/colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||||
Button/styles/hover = SubResource("StyleBoxFlat_2u7je")
|
Button/styles/hover = SubResource("StyleBoxFlat_2u7je")
|
||||||
Button/styles/normal = SubResource("StyleBoxFlat_uo2yv")
|
Button/styles/normal = SubResource("StyleBoxFlat_uo2yv")
|
||||||
Button/styles/pressed = SubResource("StyleBoxFlat_sjhib")
|
Button/styles/pressed = SubResource("StyleBoxFlat_sjhib")
|
||||||
|
Panel/styles/panel = SubResource("StyleBoxFlat_5it3g")
|
||||||
|
|
||||||
[node name="Menu" type="Control"]
|
[node name="Menu" type="Control" node_paths=PackedStringArray("main_menu", "level_select")]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
offset_top = 1.0
|
||||||
|
offset_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
theme = SubResource("Theme_67fiq")
|
theme = SubResource("Theme_67fiq")
|
||||||
script = ExtResource("1_p5r7q")
|
script = ExtResource("1_p5r7q")
|
||||||
|
main_menu = NodePath("VBoxContainer")
|
||||||
|
level_select = NodePath("LevelSelect")
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -86,6 +99,163 @@ layout_mode = 2
|
||||||
focus_neighbor_bottom = NodePath("../StartButton")
|
focus_neighbor_bottom = NodePath("../StartButton")
|
||||||
text = "Quit"
|
text = "Quit"
|
||||||
|
|
||||||
|
[node name="LevelSelect" type="Panel" parent="."]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -131.0
|
||||||
|
offset_top = -231.0
|
||||||
|
offset_right = 132.0
|
||||||
|
offset_bottom = 169.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="LevelSelect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -86.5
|
||||||
|
offset_top = -65.0
|
||||||
|
offset_right = 85.5
|
||||||
|
offset_bottom = 127.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer2" type="VBoxContainer" parent="LevelSelect/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Row1" type="BoxContainer" parent="LevelSelect/VBoxContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="1" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row1"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "1"
|
||||||
|
|
||||||
|
[node name="2" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row1"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "2"
|
||||||
|
|
||||||
|
[node name="3" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row1"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "3"
|
||||||
|
|
||||||
|
[node name="4" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row1"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "4"
|
||||||
|
|
||||||
|
[node name="Row2" type="BoxContainer" parent="LevelSelect/VBoxContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="5" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row2"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "5"
|
||||||
|
|
||||||
|
[node name="6" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row2"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "6"
|
||||||
|
|
||||||
|
[node name="7" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row2"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "7"
|
||||||
|
|
||||||
|
[node name="8" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row2"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "8"
|
||||||
|
|
||||||
|
[node name="Row3" type="BoxContainer" parent="LevelSelect/VBoxContainer/VBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="9" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row3"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "9"
|
||||||
|
|
||||||
|
[node name="10" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row3"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "10"
|
||||||
|
|
||||||
|
[node name="11" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row3"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "11"
|
||||||
|
|
||||||
|
[node name="12" type="Button" parent="LevelSelect/VBoxContainer/VBoxContainer2/Row3"]
|
||||||
|
custom_minimum_size = Vector2(40, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "12"
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="LevelSelect/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 20
|
||||||
|
|
||||||
|
[node name="BackButton" type="Button" parent="LevelSelect/VBoxContainer/MarginContainer"]
|
||||||
|
custom_minimum_size = Vector2(120, 40)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 8
|
||||||
|
focus_neighbor_bottom = NodePath("../StartButton")
|
||||||
|
text = "Back"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="LevelSelect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
offset_left = -52.0
|
||||||
|
offset_top = 24.0
|
||||||
|
offset_right = 52.0
|
||||||
|
offset_bottom = 50.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
text = "LEVEL SELECT"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="MenuMusic" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("2_yc480")
|
||||||
|
volume_db = -29.953
|
||||||
|
autoplay = true
|
||||||
|
bus = &"Music"
|
||||||
|
|
||||||
[connection signal="pressed" from="VBoxContainer/StartButton" to="." method="_on_start_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/StartButton" to="." method="_on_start_button_pressed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/OptionsButton" to="." method="_on_options_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/OptionsButton" to="." method="_on_options_button_pressed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row1/1" to="." method="_on_level_button_pressed" binds= [1]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row1/2" to="." method="_on_level_button_pressed" binds= [2]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row1/3" to="." method="_on_level_button_pressed" binds= [3]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row1/4" to="." method="_on_level_button_pressed" binds= [4]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row2/5" to="." method="_on_level_button_pressed" binds= [5]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row2/6" to="." method="_on_level_button_pressed" binds= [6]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row2/7" to="." method="_on_level_button_pressed" binds= [7]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row2/8" to="." method="_on_level_button_pressed" binds= [8]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row3/9" to="." method="_on_level_button_pressed" binds= [9]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row3/10" to="." method="_on_level_button_pressed" binds= [10]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row3/11" to="." method="_on_level_button_pressed" binds= [11]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/VBoxContainer2/Row3/12" to="." method="_on_level_button_pressed" binds= [12]]
|
||||||
|
[connection signal="pressed" from="LevelSelect/VBoxContainer/MarginContainer/BackButton" to="." method="_on_back_button_pressed"]
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
func _on_back_button_pressed():
|
||||||
# Called when the node enters the scene tree for the first time.
|
queue_free()
|
||||||
func _ready():
|
|
||||||
pass # Replace with function body.
|
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta):
|
|
||||||
pass
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://fqg6y7xp34u0"]
|
[gd_scene load_steps=4 format=3 uid="uid://fqg6y7xp34u0"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/gui/menu/options.gd" id="1_0813x"]
|
[ext_resource type="Script" path="res://src/gui/menu/options.gd" id="1_0813x"]
|
||||||
|
[ext_resource type="Theme" uid="uid://dpktnl3r5wul1" path="res://src/gui/menu_theme.tres" id="1_stpo1"]
|
||||||
|
[ext_resource type="Script" path="res://src/gui/menu/volume_slider.gd" id="3_2vqm2"]
|
||||||
|
|
||||||
[node name="options" type="Control"]
|
[node name="options" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
|
@ -9,4 +11,132 @@ anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
theme = ExtResource("1_stpo1")
|
||||||
script = ExtResource("1_0813x")
|
script = ExtResource("1_0813x")
|
||||||
|
|
||||||
|
[node name="Background" type="Panel" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -131.0
|
||||||
|
offset_top = -231.0
|
||||||
|
offset_right = 132.0
|
||||||
|
offset_bottom = 169.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Background"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 5
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
offset_left = -52.0
|
||||||
|
offset_top = 24.0
|
||||||
|
offset_right = 52.0
|
||||||
|
offset_bottom = 50.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
text = "OPTIONS"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="Background"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -102.0
|
||||||
|
offset_top = -84.0
|
||||||
|
offset_right = 102.0
|
||||||
|
offset_bottom = 120.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Background/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "AUDIO"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="Background/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Background/VBoxContainer/HBoxContainer"]
|
||||||
|
custom_minimum_size = Vector2(65, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "MASTER"
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="Background/VBoxContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 3
|
||||||
|
|
||||||
|
[node name="HSlider" type="HSlider" parent="Background/VBoxContainer/HBoxContainer/MarginContainer"]
|
||||||
|
custom_minimum_size = Vector2(125, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
max_value = 1.0
|
||||||
|
step = 0.001
|
||||||
|
script = ExtResource("3_2vqm2")
|
||||||
|
bus_name = "Master"
|
||||||
|
|
||||||
|
[node name="HBoxContainer2" type="HBoxContainer" parent="Background/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Background/VBoxContainer/HBoxContainer2"]
|
||||||
|
custom_minimum_size = Vector2(65, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "MUSIC"
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="Background/VBoxContainer/HBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 3
|
||||||
|
|
||||||
|
[node name="HSlider" type="HSlider" parent="Background/VBoxContainer/HBoxContainer2/MarginContainer"]
|
||||||
|
custom_minimum_size = Vector2(125, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
max_value = 1.0
|
||||||
|
step = 0.001
|
||||||
|
script = ExtResource("3_2vqm2")
|
||||||
|
bus_name = "Music"
|
||||||
|
|
||||||
|
[node name="HBoxContainer3" type="HBoxContainer" parent="Background/VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Background/VBoxContainer/HBoxContainer3"]
|
||||||
|
custom_minimum_size = Vector2(65, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
text = "SFX"
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="Background/VBoxContainer/HBoxContainer3"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_top = 3
|
||||||
|
|
||||||
|
[node name="HSlider" type="HSlider" parent="Background/VBoxContainer/HBoxContainer3/MarginContainer"]
|
||||||
|
custom_minimum_size = Vector2(125, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
max_value = 1.0
|
||||||
|
step = 0.001
|
||||||
|
script = ExtResource("3_2vqm2")
|
||||||
|
bus_name = "Sfx"
|
||||||
|
|
||||||
|
[node name="BackButton" type="Button" parent="Background"]
|
||||||
|
custom_minimum_size = Vector2(120, 40)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 7
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = -60.0
|
||||||
|
offset_top = -64.0
|
||||||
|
offset_right = 60.0
|
||||||
|
offset_bottom = -24.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 8
|
||||||
|
focus_neighbor_bottom = NodePath("../StartButton")
|
||||||
|
text = "Back"
|
||||||
|
|
||||||
|
[connection signal="pressed" from="Background/BackButton" to="." method="_on_back_button_pressed"]
|
||||||
|
|
14
src/gui/menu/volume_slider.gd
Normal file
14
src/gui/menu/volume_slider.gd
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
extends HSlider
|
||||||
|
|
||||||
|
@export
|
||||||
|
var bus_name: String
|
||||||
|
|
||||||
|
var bus_index: int
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
bus_index = AudioServer.get_bus_index(bus_name)
|
||||||
|
value_changed.connect(_on_value_changed)
|
||||||
|
value = db_to_linear(AudioServer.get_bus_volume_db(bus_index))
|
||||||
|
|
||||||
|
func _on_value_changed(value: float) -> void:
|
||||||
|
AudioServer.set_bus_volume_db(bus_index, linear_to_db(value))
|
52
src/gui/menu_theme.tres
Normal file
52
src/gui/menu_theme.tres
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
[gd_resource type="Theme" load_steps=5 format=3 uid="uid://dpktnl3r5wul1"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2u7je"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
border_width_left = 2
|
||||||
|
border_width_top = 2
|
||||||
|
border_width_right = 2
|
||||||
|
border_width_bottom = 2
|
||||||
|
border_color = Color(0, 0, 0, 1)
|
||||||
|
border_blend = true
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_uo2yv"]
|
||||||
|
bg_color = Color(1, 1, 1, 1)
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sjhib"]
|
||||||
|
bg_color = Color(0, 0, 0, 1)
|
||||||
|
border_width_left = 2
|
||||||
|
border_width_top = 2
|
||||||
|
border_width_right = 2
|
||||||
|
border_width_bottom = 2
|
||||||
|
border_color = Color(1, 1, 1, 1)
|
||||||
|
border_blend = true
|
||||||
|
corner_radius_top_left = 5
|
||||||
|
corner_radius_top_right = 5
|
||||||
|
corner_radius_bottom_right = 5
|
||||||
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5it3g"]
|
||||||
|
bg_color = Color(0, 0, 0, 1)
|
||||||
|
corner_radius_top_left = 10
|
||||||
|
corner_radius_top_right = 10
|
||||||
|
corner_radius_bottom_right = 10
|
||||||
|
corner_radius_bottom_left = 10
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
Button/colors/font_color = Color(0, 0, 0, 1)
|
||||||
|
Button/colors/font_focus_color = Color(0, 0, 0, 1)
|
||||||
|
Button/colors/font_hover_color = Color(0, 0, 0, 1)
|
||||||
|
Button/colors/font_hover_pressed_color = Color(1, 1, 1, 1)
|
||||||
|
Button/colors/font_pressed_color = Color(1, 1, 1, 1)
|
||||||
|
Button/styles/hover = SubResource("StyleBoxFlat_2u7je")
|
||||||
|
Button/styles/normal = SubResource("StyleBoxFlat_uo2yv")
|
||||||
|
Button/styles/pressed = SubResource("StyleBoxFlat_sjhib")
|
||||||
|
Panel/styles/panel = SubResource("StyleBoxFlat_5it3g")
|
Loading…
Reference in a new issue