From 07a318c32754f5ddf8a2e3ae8cc81ff7f3e694cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Sat, 13 Nov 2021 00:03:35 +0100 Subject: [PATCH] Add main menu --- assets/fonts/kenney-future-narrow.ttf | Bin 0 -> 34856 bytes assets/source/dirttrack.png.import | 35 +++++++++++ assets/source/tyretexture.png.import | 35 +++++++++++ player/camera.tscn | 10 ++++ project.godot | 2 +- scenes/menu/main_menu.gd | 10 ++++ scenes/menu/main_menu.tscn | 80 ++++++++++++++++++++++++++ scenes/menu/start_menu.gd | 20 +++++++ scenes/menu/start_menu.tscn | 80 ++++++++++++++++++++++++++ scenes/test_level.gd | 15 +++++ scenes/test_level.tscn | 20 ++----- 11 files changed, 292 insertions(+), 15 deletions(-) create mode 100644 assets/fonts/kenney-future-narrow.ttf create mode 100644 assets/source/dirttrack.png.import create mode 100644 assets/source/tyretexture.png.import create mode 100644 player/camera.tscn create mode 100644 scenes/menu/main_menu.gd create mode 100644 scenes/menu/main_menu.tscn create mode 100644 scenes/menu/start_menu.gd create mode 100644 scenes/menu/start_menu.tscn create mode 100644 scenes/test_level.gd diff --git a/assets/fonts/kenney-future-narrow.ttf b/assets/fonts/kenney-future-narrow.ttf new file mode 100644 index 0000000000000000000000000000000000000000..42f2c33a2ad8de72a1a2a706d308824746f5b97a GIT binary patch literal 34856 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 literal 0 HcmV?d00001 diff --git a/assets/source/dirttrack.png.import b/assets/source/dirttrack.png.import new file mode 100644 index 0000000..b962c3d --- /dev/null +++ b/assets/source/dirttrack.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/dirttrack.png-a0dbf57bdd68d3b168d1697e4cc26555.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/source/dirttrack.png" +dest_files=[ "res://.import/dirttrack.png-a0dbf57bdd68d3b168d1697e4cc26555.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/assets/source/tyretexture.png.import b/assets/source/tyretexture.png.import new file mode 100644 index 0000000..75f2873 --- /dev/null +++ b/assets/source/tyretexture.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/tyretexture.png-6d884bbccb42f565816a0d969c326a0d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/source/tyretexture.png" +dest_files=[ "res://.import/tyretexture.png-6d884bbccb42f565816a0d969c326a0d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/player/camera.tscn b/player/camera.tscn new file mode 100644 index 0000000..49058f1 --- /dev/null +++ b/player/camera.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://player/camera.gd" type="Script" id=1] + +[node name="camera" type="Camera"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.88022, 23.0639 ) +far = 457.7 +script = ExtResource( 1 ) +target_distance = 12.0 +target_height = 6.0 diff --git a/project.godot b/project.godot index 7481fbd..ada79f1 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=4 [application] config/name="bugged-racing" -run/main_scene="res://scenes/test_level.tscn" +run/main_scene="res://scenes/menu/main_menu.tscn" config/icon="res://icon.png" [input] diff --git a/scenes/menu/main_menu.gd b/scenes/menu/main_menu.gd new file mode 100644 index 0000000..18ed011 --- /dev/null +++ b/scenes/menu/main_menu.gd @@ -0,0 +1,10 @@ +extends Panel + +func _on_StartButton_pressed() -> void: + get_tree().change_scene("res://scenes/menu/start_menu.tscn") + +func _on_ExitButton_pressed() -> void: + get_tree().quit() + +func _on_SettingsButton_pressed() -> void: + get_tree().change_scene("res://scenes/menu/settings_menu.tscn") diff --git a/scenes/menu/main_menu.tscn b/scenes/menu/main_menu.tscn new file mode 100644 index 0000000..311825e --- /dev/null +++ b/scenes/menu/main_menu.tscn @@ -0,0 +1,80 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://scenes/menu/main_menu.gd" type="Script" id=1] +[ext_resource path="res://assets/fonts/kenney-future-narrow.ttf" type="DynamicFontData" id=2] + +[sub_resource type="DynamicFont" id=1] +size = 64 +font_data = ExtResource( 2 ) + +[sub_resource type="DynamicFont" id=2] +size = 32 +font_data = ExtResource( 2 ) + +[node name="MainMenu" type="Panel"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 21.0 +margin_top = 19.0 +margin_right = -19.0 +margin_bottom = -21.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VSplitContainer" type="VSplitContainer" parent="MarginContainer"] +margin_right = 984.0 +margin_bottom = 560.0 +dragger_visibility = 1 + +[node name="Title" type="Label" parent="MarginContainer/VSplitContainer"] +margin_right = 984.0 +margin_bottom = 72.0 +custom_colors/font_color = Color( 0.419608, 0.0117647, 0.0117647, 1 ) +custom_fonts/font = SubResource( 1 ) +text = "Bugged Racing" +align = 1 +valign = 1 + +[node name="CenterContainer" type="CenterContainer" parent="MarginContainer/VSplitContainer"] +margin_top = 84.0 +margin_right = 984.0 +margin_bottom = 560.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VSplitContainer/CenterContainer"] +margin_left = 404.0 +margin_top = 171.0 +margin_right = 580.0 +margin_bottom = 305.0 + +[node name="StartButton" type="Button" parent="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer"] +margin_right = 176.0 +margin_bottom = 42.0 +custom_fonts/font = SubResource( 2 ) +text = "Start" + +[node name="SettingsButton" type="Button" parent="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer"] +margin_top = 46.0 +margin_right = 176.0 +margin_bottom = 88.0 +custom_fonts/font = SubResource( 2 ) +text = "Settings" + +[node name="ExitButton" type="Button" parent="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer"] +margin_top = 92.0 +margin_right = 176.0 +margin_bottom = 134.0 +custom_fonts/font = SubResource( 2 ) +text = "Exit" + +[connection signal="pressed" from="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer/StartButton" to="." method="_on_StartButton_pressed"] +[connection signal="pressed" from="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer/SettingsButton" to="." method="_on_SettingsButton_pressed"] +[connection signal="pressed" from="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer/ExitButton" to="." method="_on_ExitButton_pressed"] diff --git a/scenes/menu/start_menu.gd b/scenes/menu/start_menu.gd new file mode 100644 index 0000000..5cebbe4 --- /dev/null +++ b/scenes/menu/start_menu.gd @@ -0,0 +1,20 @@ +extends Panel + +const buggy = preload("res://vehicles/buggy.tscn") +const beetle = preload("res://vehicles/beetlecar.tscn") +const test_scene = preload("res://scenes/test_level.tscn") + +func _on_BuggyButton_pressed() -> void: + _start_with_vehicle(buggy.instance()) + +func _on_BeetleButton_pressed() -> void: + _start_with_vehicle(beetle.instance()) + +func _start_with_vehicle(vehicle: Node) -> void: + var scene = test_scene.instance() + scene.call_deferred("spawn_player", vehicle) + get_tree().root.call_deferred("add_child", scene) + queue_free() + +func _on_BackButton_pressed() -> void: + get_tree().change_scene("res://scenes/menu/main_menu.tscn") diff --git a/scenes/menu/start_menu.tscn b/scenes/menu/start_menu.tscn new file mode 100644 index 0000000..5b663aa --- /dev/null +++ b/scenes/menu/start_menu.tscn @@ -0,0 +1,80 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://assets/fonts/kenney-future-narrow.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://scenes/menu/start_menu.gd" type="Script" id=2] + +[sub_resource type="DynamicFont" id=1] +size = 64 +font_data = ExtResource( 1 ) + +[sub_resource type="DynamicFont" id=2] +size = 32 +font_data = ExtResource( 1 ) + +[node name="StartMenu" type="Panel"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 20.0 +margin_top = 20.0 +margin_right = -20.0 +margin_bottom = -20.0 + +[node name="VSplitContainer" type="VSplitContainer" parent="MarginContainer"] +margin_right = 984.0 +margin_bottom = 560.0 +dragger_visibility = 1 + +[node name="HSplitContainer" type="HSplitContainer" parent="MarginContainer/VSplitContainer"] +margin_right = 984.0 +margin_bottom = 72.0 +dragger_visibility = 1 + +[node name="BackButton" type="Button" parent="MarginContainer/VSplitContainer/HSplitContainer"] +margin_right = 42.0 +margin_bottom = 72.0 +text = "Back" + +[node name="Title" type="Label" parent="MarginContainer/VSplitContainer/HSplitContainer"] +margin_left = 54.0 +margin_right = 984.0 +margin_bottom = 72.0 +custom_fonts/font = SubResource( 1 ) +text = "Select Vehicle" +align = 1 +valign = 1 + +[node name="CenterContainer" type="CenterContainer" parent="MarginContainer/VSplitContainer"] +margin_top = 84.0 +margin_right = 984.0 +margin_bottom = 560.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VSplitContainer/CenterContainer"] +margin_left = 419.0 +margin_top = 194.0 +margin_right = 565.0 +margin_bottom = 282.0 + +[node name="BuggyButton" type="Button" parent="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer"] +margin_right = 146.0 +margin_bottom = 42.0 +custom_fonts/font = SubResource( 2 ) +text = "Buggy" + +[node name="BeetleButton" type="Button" parent="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer"] +margin_top = 46.0 +margin_right = 146.0 +margin_bottom = 88.0 +custom_fonts/font = SubResource( 2 ) +text = "Beetle" + +[connection signal="pressed" from="MarginContainer/VSplitContainer/HSplitContainer/BackButton" to="." method="_on_BackButton_pressed"] +[connection signal="pressed" from="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer/BuggyButton" to="." method="_on_BuggyButton_pressed"] +[connection signal="pressed" from="MarginContainer/VSplitContainer/CenterContainer/VBoxContainer/BeetleButton" to="." method="_on_BeetleButton_pressed"] diff --git a/scenes/test_level.gd b/scenes/test_level.gd new file mode 100644 index 0000000..46817de --- /dev/null +++ b/scenes/test_level.gd @@ -0,0 +1,15 @@ +extends Spatial + +const camera = preload("res://player/camera.tscn") +onready var spawn_point = $PlayerSpawnLocation +var player_node: Node + +func _ready() -> void: + player_node.global_transform = spawn_point.global_transform + add_child(player_node) + var player_camera = camera.instance() + player_camera.follow_target_path = player_node.get_path() + add_child(player_camera) + +func spawn_player(player_node: Node) -> void: + self.player_node = player_node diff --git a/scenes/test_level.tscn b/scenes/test_level.tscn index cc52310..bb072da 100644 --- a/scenes/test_level.tscn +++ b/scenes/test_level.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=10 format=2] -[ext_resource path="res://vehicles/buggy.tscn" type="PackedScene" id=1] -[ext_resource path="res://player/camera.gd" type="Script" id=2] +[ext_resource path="res://scenes/test_level.gd" type="Script" id=1] [ext_resource path="res://icon.png" type="Texture" id=3] [sub_resource type="PlaneMesh" id=1] @@ -36,6 +35,10 @@ albedo_color = Color( 0.4, 0.301961, 0.00784314, 1 ) albedo_texture = SubResource( 6 ) [node name="Spatial" type="Spatial"] +script = ExtResource( 1 ) + +[node name="PlayerSpawnLocation" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -53.0538, 4.97082, -42.7552 ) [node name="StaticBody" type="StaticBody" parent="."] transform = Transform( 99.9785, 0, 0, 0, 99.9785, 0, 0, 0, 99.9785, 0, 0, 0 ) @@ -49,14 +52,6 @@ material/0 = SubResource( 2 ) transform = Transform( 6.13726, 0, 0, 0, 6.13726, 0, 0, 0, 6.13726, 0, 0, 0 ) shape = SubResource( 3 ) -[node name="camera" type="Camera" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.88022, 23.0639 ) -far = 457.7 -script = ExtResource( 2 ) -follow_target_path = NodePath("../buggy") -target_distance = 12.0 -target_height = 6.0 - [node name="Track" type="Spatial" parent="."] [node name="Path" type="Path" parent="Track"] @@ -93,6 +88,3 @@ path_local = true path_continuous_u = true path_u_distance = 1.0 path_joined = true - -[node name="buggy" parent="." instance=ExtResource( 1 )] -transform = Transform( 1.00456, 0, 0, 0, 1.00456, 0, 0, 0, 1.00456, 1.37925, -2.38419e-07, -5.16015 )