1
Fork 0
mirror of https://github.com/Steffo99/particle-clash.git synced 2024-11-21 23:24:18 +00:00

Create main menu

This commit is contained in:
Steffo 2022-10-02 03:42:17 +02:00
parent f4ac2a2723
commit 1fce7cb55b
Signed by: steffo
GPG key ID: 6965406171929D01
14 changed files with 253 additions and 69 deletions

View file

@ -1,6 +1,7 @@
{ {
"files.exclude": { "files.exclude": {
"**/.import": true "**/.import": true,
"**/*.tscn": true
}, },
"editor.insertSpaces": false, "editor.insertSpaces": false,
"editor.renderWhitespace": "all" "editor.renderWhitespace": "all"

View file

@ -11,7 +11,7 @@ config_version=4
[application] [application]
config/name="Atomic Fusion" config/name="Atomic Fusion"
run/main_scene="res://src/MainMenu.tscn" run/main_scene="res://src/Main.tscn"
boot_splash/show_image=false boot_splash/show_image=false
config/icon="res://src/sprites/atom.png" config/icon="res://src/sprites/atom.png"

22
src/Main.gd Normal file
View file

@ -0,0 +1,22 @@
extends Node2D
func _on_LeftColorPicker_color_changed(color: Color):
$Background/Left.modulate = color
$Gameplay/LeftPlayArea.self_modulate = color
$Gameplay/LeftPlayArea/Tiles.self_modulate = color
$Gameplay/Minimap/Left.self_modulate = color
func _on_RightColorPicker_color_changed(color: Color):
$Background/Right.modulate = color
$Gameplay/RightPlayArea.self_modulate = color
$Gameplay/RightPlayArea/Tiles.self_modulate = color
$Gameplay/Minimap/Right.self_modulate = color
func _on_Button_button_up():
$Menu.visible = false
$Gameplay.visible = true
$Gameplay/LeftPlayArea.tiles_init()
$Gameplay/LeftPlayArea.cursor_init()
$Gameplay/RightPlayArea.tiles_init()
$Gameplay/RightPlayArea.cursor_init()
$Gameplay/Timer.start()

39
src/Main.tscn Normal file
View file

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://src/scenes/Menu.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/scenes/Gameplay.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/scenes/Background.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Main.gd" type="Script" id=5]
[node name="Main" type="Node2D"]
script = ExtResource( 5 )
[node name="Background" parent="." instance=ExtResource( 3 )]
position = Vector2( 800, 450 )
[node name="Menu" parent="." instance=ExtResource( 1 )]
[node name="ColorPicker" parent="Menu/VBoxContainer/Colors/Left Player" index="1"]
margin_left = 0.0
margin_top = 34.0
margin_right = 420.0
margin_bottom = 508.0
[node name="ColorPicker" parent="Menu/VBoxContainer/Colors/Right Player" index="1"]
margin_left = 0.0
margin_top = 34.0
margin_right = 420.0
margin_bottom = 508.0
[node name="Gameplay" parent="." instance=ExtResource( 2 )]
visible = false
[connection signal="color_changed" from="Menu/VBoxContainer/Colors/Left Player/ColorPicker" to="." method="_on_LeftColorPicker_color_changed"]
[connection signal="color_changed" from="Menu/VBoxContainer/Colors/Right Player/ColorPicker" to="." method="_on_RightColorPicker_color_changed"]
[connection signal="button_up" from="Menu/VBoxContainer/Button" to="." method="_on_Button_button_up"]
[editable path="Background"]
[editable path="Menu"]
[editable path="Gameplay"]
[editable path="Gameplay/LeftPlayArea"]
[editable path="Gameplay/RightPlayArea"]

View file

@ -1,11 +0,0 @@
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
$Timer.start()

View file

@ -1,25 +0,0 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://src/MainMenu.gd" type="Script" id=1]
[ext_resource path="res://src/scenes/Background.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/scenes/Play Area.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/scenes/Timer.tscn" type="PackedScene" id=5]
[node name="MainMenu" type="Node2D"]
script = ExtResource( 1 )
[node name="Background" parent="." instance=ExtResource( 2 )]
modulate = Color( 0, 0.31, 0, 1 )
[node name="Left Play Area" parent="." instance=ExtResource( 3 )]
position = Vector2( 400, 450 )
player = "p1"
[node name="Right Play Area" parent="." instance=ExtResource( 3 )]
position = Vector2( 1200, 450 )
player = "p2"
[node name="Timer" parent="." instance=ExtResource( 5 )]
[editable path="Left Play Area"]
[editable path="Right Play Area"]

View file

@ -2,6 +2,16 @@
[ext_resource path="res://src/sprites/background.png" type="Texture" id=1] [ext_resource path="res://src/sprites/background.png" type="Texture" id=1]
[node name="Background" type="Sprite"] [node name="Background" type="Node2D"]
position = Vector2( 800, 450 ) modulate = Color( 0.117647, 0.117647, 0.117647, 1 )
[node name="Left" type="Sprite" parent="."]
modulate = Color( 1, 0.701961, 0.701961, 1 )
position = Vector2( -400, 0 )
texture = ExtResource( 1 ) texture = ExtResource( 1 )
[node name="Right" type="Sprite" parent="."]
modulate = Color( 0.701961, 0.701961, 1, 1 )
position = Vector2( 400, 0 )
texture = ExtResource( 1 )
flip_h = true

7
src/scenes/Gameplay.gd Normal file
View file

@ -0,0 +1,7 @@
extends Node2D
func _process(_delta):
var timer = $Timer
$Minimap/Left.position.x = (1 - timer.time_left / timer.wait_time) * (get_viewport().size.x / 2)
$Minimap/Right.position.x = get_viewport().size.x - (1 - timer.time_left / timer.wait_time) * (get_viewport().size.x / 2)

45
src/scenes/Gameplay.tscn Normal file
View file

@ -0,0 +1,45 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://src/scenes/Gameplay.gd" type="Script" id=1]
[ext_resource path="res://src/sprites/atom.png" type="Texture" id=2]
[ext_resource path="res://src/scenes/Play Area.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/scenes/Timer.tscn" type="PackedScene" id=7]
[node name="Gameplay" type="Node2D"]
script = ExtResource( 1 )
[node name="LeftPlayArea" parent="." instance=ExtResource( 6 )]
self_modulate = Color( 1, 0.701961, 0.701961, 1 )
position = Vector2( 400, 450 )
player = "p1"
[node name="Tiles" parent="LeftPlayArea" index="1"]
self_modulate = Color( 1, 0.701961, 0.701961, 1 )
[node name="RightPlayArea" parent="." instance=ExtResource( 6 )]
self_modulate = Color( 0.701961, 0.701961, 1, 1 )
position = Vector2( 1200, 450 )
player = "p2"
[node name="Tiles" parent="RightPlayArea" index="1"]
self_modulate = Color( 0.701961, 0.701961, 1, 1 )
[node name="Timer" parent="." instance=ExtResource( 7 )]
one_shot = true
[node name="Minimap" type="Node2D" parent="."]
position = Vector2( 0, 16 )
[node name="Left" type="Sprite" parent="Minimap"]
self_modulate = Color( 1, 0.7, 0.7, 1 )
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 2 )
[node name="Right" type="Sprite" parent="Minimap"]
self_modulate = Color( 0.7, 0.7, 1, 1 )
position = Vector2( 1600, 0 )
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 2 )
[editable path="LeftPlayArea"]
[editable path="RightPlayArea"]

122
src/scenes/Menu.tscn Normal file
View file

@ -0,0 +1,122 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://src/fonts/Xolonium-Bold.ttf" type="DynamicFontData" id=1]
[ext_resource path="res://src/fonts/Xolonium-Regular.ttf" type="DynamicFontData" id=2]
[sub_resource type="DynamicFont" id=1]
size = 24
font_data = ExtResource( 2 )
[sub_resource type="Theme" id=2]
default_font = SubResource( 1 )
[sub_resource type="DynamicFont" id=3]
size = 48
font_data = ExtResource( 1 )
[node name="Menu" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_right = 1600.0
margin_bottom = 900.0
theme = SubResource( 2 )
[node name="VBoxContainer" type="VBoxContainer" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
alignment = 1
[node name="Title" type="Label" parent="VBoxContainer"]
margin_top = 95.0
margin_right = 1600.0
margin_bottom = 153.0
custom_fonts/font = SubResource( 3 )
text = "Atomic Clash"
align = 1
[node name="Padding" type="HBoxContainer" parent="VBoxContainer"]
margin_top = 157.0
margin_right = 1600.0
margin_bottom = 197.0
rect_min_size = Vector2( 0, 40 )
[node name="Colors" type="HBoxContainer" parent="VBoxContainer"]
margin_top = 201.0
margin_right = 1600.0
margin_bottom = 709.0
alignment = 1
[node name="Left Player" type="VBoxContainer" parent="VBoxContainer/Colors"]
margin_left = 304.0
margin_right = 724.0
margin_bottom = 508.0
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer/Colors/Left Player"]
margin_right = 420.0
margin_bottom = 30.0
text = "Left Player [WASD + Space]"
[node name="ColorPicker" type="ColorPicker" parent="VBoxContainer/Colors/Left Player"]
margin_left = 4.0
margin_top = 38.0
margin_right = 424.0
margin_bottom = 512.0
color = Color( 1, 0.7, 0.7, 1 )
edit_alpha = false
hsv_mode = true
presets_enabled = false
presets_visible = false
[node name="Vs" type="VBoxContainer" parent="VBoxContainer/Colors"]
margin_left = 728.0
margin_right = 872.0
margin_bottom = 508.0
rect_min_size = Vector2( 144, 0 )
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer/Colors/Vs"]
margin_top = 239.0
margin_right = 144.0
margin_bottom = 269.0
text = "VS"
align = 1
valign = 1
[node name="Right Player" type="VBoxContainer" parent="VBoxContainer/Colors"]
margin_left = 876.0
margin_right = 1296.0
margin_bottom = 508.0
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer/Colors/Right Player"]
margin_right = 420.0
margin_bottom = 30.0
text = "[↑←↓→ + Enter] Right Player"
align = 2
[node name="ColorPicker" type="ColorPicker" parent="VBoxContainer/Colors/Right Player"]
margin_left = 4.0
margin_top = 38.0
margin_right = 424.0
margin_bottom = 512.0
color = Color( 0.7, 0.7, 1, 1 )
edit_alpha = false
hsv_mode = true
presets_enabled = false
presets_visible = false
[node name="Padding2" type="HBoxContainer" parent="VBoxContainer"]
margin_top = 713.0
margin_right = 1600.0
margin_bottom = 753.0
rect_min_size = Vector2( 0, 40 )
[node name="Button" type="Button" parent="VBoxContainer"]
margin_left = 720.0
margin_top = 757.0
margin_right = 880.0
margin_bottom = 805.0
rect_min_size = Vector2( 160, 48 )
size_flags_horizontal = 4
text = "Start!"

View file

@ -161,8 +161,3 @@ func _process(_delta):
cursor_left() cursor_left()
if Input.is_action_just_pressed(player + "_rotate"): if Input.is_action_just_pressed(player + "_rotate"):
cursor_rotate() cursor_rotate()
func _ready():
tiles_init()
cursor_init()

View file

@ -1,6 +0,0 @@
extends Timer
func _process(_delta):
$Minimap/Left.position.x = (1 - time_left / wait_time) * (get_viewport().size.x / 2)
$Minimap/Right.position.x = get_viewport().size.x - (1 - time_left / wait_time) * (get_viewport().size.x / 2)

View file

@ -1,15 +1,12 @@
[gd_scene load_steps=7 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://src/music/2-atoms-sine.ogg" type="AudioStream" id=1] [ext_resource path="res://src/music/2-atoms-sine.ogg" type="AudioStream" id=1]
[ext_resource path="res://src/music/2-atoms-square.ogg" type="AudioStream" id=2] [ext_resource path="res://src/music/2-atoms-square.ogg" type="AudioStream" id=2]
[ext_resource path="res://src/music/2-atoms-saw.ogg" type="AudioStream" id=3] [ext_resource path="res://src/music/2-atoms-saw.ogg" type="AudioStream" id=3]
[ext_resource path="res://src/music/2-atoms-base.ogg" type="AudioStream" id=4] [ext_resource path="res://src/music/2-atoms-base.ogg" type="AudioStream" id=4]
[ext_resource path="res://src/sprites/atom.png" type="Texture" id=5]
[ext_resource path="res://src/scenes/Timer.gd" type="Script" id=6]
[node name="Timer" type="Timer"] [node name="Timer" type="Timer"]
wait_time = 10.0 wait_time = 10.0
script = ExtResource( 6 )
[node name="AudioBase" type="AudioStreamPlayer" parent="."] [node name="AudioBase" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 4 ) stream = ExtResource( 4 )
@ -22,15 +19,3 @@ stream = ExtResource( 2 )
[node name="AudioSaw" type="AudioStreamPlayer" parent="."] [node name="AudioSaw" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 3 ) stream = ExtResource( 3 )
[node name="Minimap" type="Node2D" parent="."]
position = Vector2( 0, 16 )
[node name="Left" type="Sprite" parent="Minimap"]
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 5 )
[node name="Right" type="Sprite" parent="Minimap"]
position = Vector2( 1600, 0 )
scale = Vector2( 0.5, 0.5 )
texture = ExtResource( 5 )

BIN
src/sprites/background.png (Stored with Git LFS)

Binary file not shown.