Add split-screen Space Shooter with pod steering and boost.
Two-player mode with client assignment, 3D vector calibration for cylindrical pods, lives, tap/double-tap boost with low-intensity LED cooldown feedback, and Kenney sprite assets. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+9
-2
@@ -29,9 +29,9 @@ anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -180.0
|
||||
offset_top = -240.0
|
||||
offset_top = -280.0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 240.0
|
||||
offset_bottom = 280.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 16
|
||||
@@ -83,6 +83,13 @@ size_flags_horizontal = 4
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Color Game"
|
||||
|
||||
[node name="SpaceShooterButton" type="Button" parent="CenterBox"]
|
||||
custom_minimum_size = Vector2(280, 48)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Space Shooter"
|
||||
|
||||
[node name="ExitButton" type="Button" parent="CenterBox"]
|
||||
custom_minimum_size = Vector2(280, 48)
|
||||
layout_mode = 2
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
[gd_scene format=3 uid="uid://bwayhk38lpl3u"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/space_shooter.gd" id="1_shooter"]
|
||||
[ext_resource type="Script" path="res://scripts/calibration_overlay.gd" id="2_calib"]
|
||||
|
||||
[node name="SpaceShooter" type="Node2D"]
|
||||
script = ExtResource("1_shooter")
|
||||
|
||||
[node name="BgLayer" type="CanvasLayer" parent="."]
|
||||
layer = -10
|
||||
|
||||
[node name="Background" type="ColorRect" parent="BgLayer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.05, 0.06, 0.1, 1)
|
||||
|
||||
[node name="StarsLayer" type="Node2D" parent="."]
|
||||
|
||||
[node name="GameLayer" type="Node2D" parent="."]
|
||||
|
||||
[node name="UiLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="MenuButton" type="Button" parent="UiLayer"]
|
||||
offset_left = 16.0
|
||||
offset_top = 12.0
|
||||
offset_right = 120.0
|
||||
offset_bottom = 44.0
|
||||
text = "Menü"
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="UiLayer"]
|
||||
offset_left = 130.0
|
||||
offset_top = 12.0
|
||||
offset_right = 900.0
|
||||
offset_bottom = 40.0
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Starting…"
|
||||
|
||||
[node name="LeftScoreLabel" type="Label" parent="UiLayer"]
|
||||
offset_left = 24.0
|
||||
offset_top = 52.0
|
||||
offset_right = 280.0
|
||||
offset_bottom = 120.0
|
||||
theme_override_colors/font_color = Color(0.45, 0.75, 1, 1)
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Links · —"
|
||||
|
||||
[node name="RightScoreLabel" type="Label" parent="UiLayer"]
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -280.0
|
||||
offset_top = 52.0
|
||||
offset_right = -24.0
|
||||
offset_bottom = 120.0
|
||||
grow_horizontal = 0
|
||||
theme_override_colors/font_color = Color(1, 0.72, 0.35, 1)
|
||||
theme_override_font_sizes/font_size = 18
|
||||
horizontal_alignment = 2
|
||||
text = "Rechts · —"
|
||||
|
||||
[node name="RecalibButton" type="Button" parent="UiLayer"]
|
||||
visible = false
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -240.0
|
||||
offset_top = 12.0
|
||||
offset_right = -130.0
|
||||
offset_bottom = 44.0
|
||||
grow_horizontal = 0
|
||||
text = "Neu kalibrieren"
|
||||
|
||||
[node name="SetupPanel" type="VBoxContainer" parent="UiLayer"]
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -280.0
|
||||
offset_top = -160.0
|
||||
offset_right = 280.0
|
||||
offset_bottom = 160.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 18
|
||||
alignment = 1
|
||||
|
||||
[node name="SetupTitle" type="Label" parent="UiLayer/SetupPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.98, 1)
|
||||
theme_override_font_sizes/font_size = 28
|
||||
horizontal_alignment = 1
|
||||
text = "Space Shooter"
|
||||
|
||||
[node name="SetupSubtitle" type="Label" parent="UiLayer/SetupPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.6, 0.65, 0.75, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
horizontal_alignment = 1
|
||||
text = "Split-Screen · Pod-Zuweisung"
|
||||
|
||||
[node name="ClientGrid" type="GridContainer" parent="UiLayer/SetupPanel"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_override_constants/h_separation = 16
|
||||
theme_override_constants/v_separation = 12
|
||||
columns = 2
|
||||
|
||||
[node name="LeftCaption" type="Label" parent="UiLayer/SetupPanel/ClientGrid"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.45, 0.75, 1, 1)
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "Links"
|
||||
|
||||
[node name="LeftClientOption" type="OptionButton" parent="UiLayer/SetupPanel/ClientGrid"]
|
||||
custom_minimum_size = Vector2(220, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RightCaption" type="Label" parent="UiLayer/SetupPanel/ClientGrid"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(1, 0.72, 0.35, 1)
|
||||
theme_override_font_sizes/font_size = 16
|
||||
text = "Rechts"
|
||||
|
||||
[node name="RightClientOption" type="OptionButton" parent="UiLayer/SetupPanel/ClientGrid"]
|
||||
custom_minimum_size = Vector2(220, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="SetupHintLabel" type="Label" parent="UiLayer/SetupPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.65, 0.7, 0.8, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
text = "Warte auf Pods…"
|
||||
|
||||
[node name="StartGameButton" type="Button" parent="UiLayer/SetupPanel"]
|
||||
custom_minimum_size = Vector2(240, 48)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
disabled = true
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Kalibrierung starten"
|
||||
|
||||
[node name="CalibrationOverlay" type="Control" parent="UiLayer"]
|
||||
visible = false
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 0
|
||||
script = ExtResource("2_calib")
|
||||
|
||||
[node name="HintLabel" type="Label" parent="UiLayer/CalibrationOverlay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -420.0
|
||||
offset_top = 80.0
|
||||
offset_right = 420.0
|
||||
offset_bottom = 180.0
|
||||
grow_horizontal = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.98, 1)
|
||||
theme_override_font_sizes/font_size = 20
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
text = "Kalibrierung"
|
||||
|
||||
[node name="StartButton" type="Button" parent="UiLayer/CalibrationOverlay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -140.0
|
||||
offset_top = -120.0
|
||||
offset_right = 140.0
|
||||
offset_bottom = -72.0
|
||||
grow_horizontal = 2
|
||||
text = "Kalibrierung starten"
|
||||
Reference in New Issue
Block a user