Add main menu, WebSocket API demo, and multi-scene game hub.
Replace the single-entry Pong flow with a menu launcher, a per-client API demo on :8081/ws with stream controls and tap flash feedback, and bump the viewport to 1920×1080. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
[gd_scene format=3 uid="uid://bcolorgame001"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/color_game.gd" id="1_color"]
|
||||
|
||||
[node name="ColorGame" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_color")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.5, 0.3, 0.7, 1)
|
||||
|
||||
[node name="UiLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="BackButton" type="Button" parent="UiLayer"]
|
||||
offset_left = 16.0
|
||||
offset_top = 12.0
|
||||
offset_right = 120.0
|
||||
offset_bottom = 44.0
|
||||
text = "Menü"
|
||||
|
||||
[node name="Title" type="Label" parent="UiLayer"]
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -200.0
|
||||
offset_top = 60.0
|
||||
offset_right = 200.0
|
||||
offset_bottom = 100.0
|
||||
grow_horizontal = 2
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||
theme_override_font_sizes/font_size = 28
|
||||
horizontal_alignment = 1
|
||||
text = "Color Game"
|
||||
|
||||
[node name="TargetRect" type="ColorRect" parent="UiLayer"]
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -60.0
|
||||
offset_top = 120.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 240.0
|
||||
grow_horizontal = 2
|
||||
color = Color(0.85, 0.2, 0.3, 1)
|
||||
|
||||
[node name="TargetLabel" type="Label" parent="UiLayer"]
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -100.0
|
||||
offset_top = 250.0
|
||||
offset_right = 100.0
|
||||
offset_bottom = 280.0
|
||||
grow_horizontal = 2
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 0.9)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
horizontal_alignment = 1
|
||||
text = "Zielfarbe"
|
||||
|
||||
[node name="HintLabel" type="Label" parent="UiLayer"]
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -320.0
|
||||
offset_top = -80.0
|
||||
offset_right = 320.0
|
||||
offset_bottom = -40.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme_override_colors/font_color = Color(1, 1, 1, 0.85)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
text = "Neige das Gerät, um die Farbe anzupassen"
|
||||
@@ -0,0 +1,82 @@
|
||||
[gd_scene format=3 uid="uid://rbiqgb2rqnpc"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/config.gd" id="1_config"]
|
||||
|
||||
[node name="Config" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_config")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.08, 0.09, 0.14, 1)
|
||||
|
||||
[node name="UiLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="BackButton" type="Button" parent="UiLayer"]
|
||||
offset_left = 16.0
|
||||
offset_top = 12.0
|
||||
offset_right = 120.0
|
||||
offset_bottom = 44.0
|
||||
text = "Menü"
|
||||
|
||||
[node name="Title" type="Label" parent="UiLayer"]
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -200.0
|
||||
offset_top = 80.0
|
||||
offset_right = 200.0
|
||||
offset_bottom = 120.0
|
||||
grow_horizontal = 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 = "Config"
|
||||
|
||||
[node name="Panel" 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 = -80.0
|
||||
offset_right = 280.0
|
||||
offset_bottom = 80.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 20
|
||||
alignment = 1
|
||||
|
||||
[node name="WSUrlLabel" type="Label" parent="UiLayer/Panel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 16
|
||||
horizontal_alignment = 1
|
||||
text = "WebSocket: ws://localhost:9090/ws"
|
||||
|
||||
[node name="ViewportLabel" type="Label" parent="UiLayer/Panel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 16
|
||||
horizontal_alignment = 1
|
||||
text = "Viewport: 1152 × 648"
|
||||
|
||||
[node name="HintLabel" type="Label" parent="UiLayer/Panel"]
|
||||
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
|
||||
autowrap_mode = 3
|
||||
text = "Projekteinstellungen (weitere Optionen folgen)"
|
||||
@@ -0,0 +1,166 @@
|
||||
[gd_scene format=3 uid="uid://clxuqui2bti65"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/demo.gd" id="1_demo"]
|
||||
|
||||
[node name="Demo" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_demo")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.08, 0.09, 0.14, 1)
|
||||
|
||||
[node name="UiLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="TopBar" type="HBoxContainer" parent="UiLayer"]
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
offset_left = 16.0
|
||||
offset_top = 12.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = 52.0
|
||||
grow_horizontal = 2
|
||||
theme_override_constants/separation = 16
|
||||
|
||||
[node name="BackButton" type="Button" parent="UiLayer/TopBar"]
|
||||
custom_minimum_size = Vector2(100, 0)
|
||||
layout_mode = 2
|
||||
text = "Menü"
|
||||
|
||||
[node name="Title" type="Label" parent="UiLayer/TopBar"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.98, 1)
|
||||
theme_override_font_sizes/font_size = 22
|
||||
text = "API Demo"
|
||||
|
||||
[node name="UrlLabel" type="Label" parent="UiLayer/TopBar"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_colors/font_color = Color(0.55, 0.6, 0.7, 1)
|
||||
theme_override_font_sizes/font_size = 13
|
||||
text = "ws://localhost:8081/ws"
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="UiLayer/TopBar"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 13
|
||||
text = "Verbinde…"
|
||||
|
||||
[node name="MainSplit" type="HSplitContainer" parent="UiLayer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 16.0
|
||||
offset_top = 60.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = -12.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
split_offset = 520
|
||||
|
||||
[node name="LeftPanel" type="VBoxContainer" parent="UiLayer/MainSplit"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 12
|
||||
|
||||
[node name="Toolbar" type="HBoxContainer" parent="UiLayer/MainSplit/LeftPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
|
||||
[node name="ListClientsBtn" type="Button" parent="UiLayer/MainSplit/LeftPanel/Toolbar"]
|
||||
custom_minimum_size = Vector2(140, 40)
|
||||
layout_mode = 2
|
||||
text = "Clients laden"
|
||||
|
||||
[node name="IntervalLabel" type="Label" parent="UiLayer/MainSplit/LeftPanel/Toolbar"]
|
||||
layout_mode = 2
|
||||
text = "interval_ms:"
|
||||
|
||||
[node name="IntervalSpin" type="SpinBox" parent="UiLayer/MainSplit/LeftPanel/Toolbar"]
|
||||
custom_minimum_size = Vector2(90, 0)
|
||||
layout_mode = 2
|
||||
min_value = 1.0
|
||||
max_value = 10000.0
|
||||
value = 16.0
|
||||
|
||||
[node name="ClientsScroll" type="ScrollContainer" parent="UiLayer/MainSplit/LeftPanel"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="ClientsList" type="VBoxContainer" parent="UiLayer/MainSplit/LeftPanel/ClientsScroll"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="EmptyHint" type="Label" parent="UiLayer/MainSplit/LeftPanel/ClientsScroll/ClientsList"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.55, 0.6, 0.7, 1)
|
||||
theme_override_font_sizes/font_size = 13
|
||||
autowrap_mode = 3
|
||||
text = "„Clients laden“ drücken, pro Client Accel/Tap konfigurieren, dann Stream starten."
|
||||
|
||||
[node name="StreamBar" type="HBoxContainer" parent="UiLayer/MainSplit/LeftPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
|
||||
[node name="StartStreamBtn" type="Button" parent="UiLayer/MainSplit/LeftPanel/StreamBar"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 16
|
||||
disabled = true
|
||||
text = "Stream starten"
|
||||
|
||||
[node name="StopStreamBtn" type="Button" parent="UiLayer/MainSplit/LeftPanel/StreamBar"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 16
|
||||
disabled = true
|
||||
text = "Stream stoppen"
|
||||
|
||||
[node name="LogPanel" type="VBoxContainer" parent="UiLayer/MainSplit"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="LogHeader" type="Label" parent="UiLayer/MainSplit/LogPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.55, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Log"
|
||||
|
||||
[node name="LogOutput" type="TextEdit" parent="UiLayer/MainSplit/LogPanel"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_font_sizes/font_size = 12
|
||||
editable = false
|
||||
wrap_mode = 1
|
||||
|
||||
[node name="StreamHeader" type="Label" parent="UiLayer/MainSplit/LogPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.55, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Live-Daten (alle Clients)"
|
||||
|
||||
[node name="StreamOutput" type="Label" parent="UiLayer/MainSplit/LogPanel"]
|
||||
custom_minimum_size = Vector2(0, 160)
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.85, 0.95, 1)
|
||||
theme_override_font_sizes/font_size = 13
|
||||
autowrap_mode = 3
|
||||
text = "—"
|
||||
+24
-27
@@ -1,16 +1,16 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bmain2dscene01"]
|
||||
[gd_scene format=3 uid="uid://cjs5bms5o6763"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/main.gd" id="1_main"]
|
||||
[ext_resource type="Script" path="res://scripts/ball.gd" id="2_ball"]
|
||||
[ext_resource type="Script" path="res://scripts/calibration_overlay.gd" id="3_calib"]
|
||||
[ext_resource type="Script" uid="uid://bnvlevjo1fp48" path="res://scripts/ball.gd" id="2_ball"]
|
||||
[ext_resource type="Script" uid="uid://crbm1833myr5l" path="res://scripts/calibration_overlay.gd" id="3_calib"]
|
||||
|
||||
[node name="Main" type="Node2D"]
|
||||
[node name="Main" type="Node2D" unique_id=474005048]
|
||||
script = ExtResource("1_main")
|
||||
|
||||
[node name="BgLayer" type="CanvasLayer" parent="."]
|
||||
[node name="BgLayer" type="CanvasLayer" parent="." unique_id=895115848]
|
||||
layer = -10
|
||||
|
||||
[node name="Background" type="ColorRect" parent="BgLayer"]
|
||||
[node name="Background" type="ColorRect" parent="BgLayer" unique_id=808294717]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
@@ -19,18 +19,18 @@ grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.08, 0.09, 0.14, 1)
|
||||
|
||||
[node name="Platform" type="Polygon2D" parent="."]
|
||||
[node name="Platform" type="Polygon2D" parent="." unique_id=1966405851]
|
||||
position = Vector2(576, 600)
|
||||
color = Color(0.25, 0.72, 0.95, 1)
|
||||
polygon = PackedVector2Array(-80, -12, 80, -12, 80, 12, -80, -12)
|
||||
position = Vector2(576, 600)
|
||||
|
||||
[node name="Ball" type="Node2D" parent="."]
|
||||
[node name="Ball" type="Node2D" parent="." unique_id=1211114968]
|
||||
position = Vector2(576, 320)
|
||||
script = ExtResource("2_ball")
|
||||
|
||||
[node name="UiLayer" type="CanvasLayer" parent="."]
|
||||
[node name="UiLayer" type="CanvasLayer" parent="." unique_id=635198279]
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="UiLayer"]
|
||||
[node name="StatusLabel" type="Label" parent="UiLayer" unique_id=601884942]
|
||||
offset_left = 16.0
|
||||
offset_top = 12.0
|
||||
offset_right = 560.0
|
||||
@@ -39,47 +39,44 @@ theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Starting…"
|
||||
|
||||
[node name="ThresholdPanel" type="VBoxContainer" parent="UiLayer"]
|
||||
[node name="ThresholdPanel" type="VBoxContainer" parent="UiLayer" unique_id=1490838898]
|
||||
offset_left = 16.0
|
||||
offset_top = 48.0
|
||||
offset_right = 420.0
|
||||
offset_bottom = 148.0
|
||||
|
||||
[node name="ThresholdCaption" type="Label" parent="UiLayer/ThresholdPanel"]
|
||||
[node name="ThresholdCaption" type="Label" parent="UiLayer/ThresholdPanel" unique_id=1245613915]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Schwellwert: 3000"
|
||||
|
||||
[node name="ThresholdSlider" type="HSlider" parent="UiLayer/ThresholdPanel"]
|
||||
[node name="ThresholdSlider" type="HSlider" parent="UiLayer/ThresholdPanel" unique_id=1874311831]
|
||||
custom_minimum_size = Vector2(380, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 0.0
|
||||
max_value = 15000.0
|
||||
step = 50.0
|
||||
value = 3000.0
|
||||
tick_count = 16
|
||||
ticks_on_borders = true
|
||||
|
||||
[node name="SensitivityCaption" type="Label" parent="UiLayer/ThresholdPanel"]
|
||||
[node name="SensitivityCaption" type="Label" parent="UiLayer/ThresholdPanel" unique_id=1083787312]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Bewegungsstärke: 6 %"
|
||||
|
||||
[node name="SensitivitySlider" type="HSlider" parent="UiLayer/ThresholdPanel"]
|
||||
[node name="SensitivitySlider" type="HSlider" parent="UiLayer/ThresholdPanel" unique_id=1497316063]
|
||||
custom_minimum_size = Vector2(380, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 1.0
|
||||
max_value = 100.0
|
||||
step = 1.0
|
||||
value = 6.0
|
||||
tick_count = 11
|
||||
ticks_on_borders = true
|
||||
|
||||
[node name="AccelLabel" type="Label" parent="UiLayer"]
|
||||
[node name="AccelLabel" type="Label" parent="UiLayer" unique_id=1538579724]
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
@@ -93,10 +90,10 @@ grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.55, 1)
|
||||
theme_override_font_sizes/font_size = 16
|
||||
horizontal_alignment = 2
|
||||
text = "x: — y: — z: —"
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="RecalibButton" type="Button" parent="UiLayer"]
|
||||
[node name="RecalibButton" type="Button" parent="UiLayer" unique_id=1145373245]
|
||||
visible = false
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
@@ -108,17 +105,16 @@ offset_bottom = 44.0
|
||||
grow_horizontal = 0
|
||||
text = "Kalibrierung neu starten"
|
||||
|
||||
[node name="CalibrationOverlay" type="Control" parent="UiLayer"]
|
||||
[node name="CalibrationOverlay" type="Control" parent="UiLayer" unique_id=2105464363]
|
||||
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("3_calib")
|
||||
|
||||
[node name="HintLabel" type="Label" parent="UiLayer/CalibrationOverlay"]
|
||||
[node name="HintLabel" type="Label" parent="UiLayer/CalibrationOverlay" unique_id=2126154488]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
@@ -130,11 +126,11 @@ offset_bottom = 140.0
|
||||
grow_horizontal = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.98, 1)
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "Kalibrierung"
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
text = "Kalibrierung"
|
||||
|
||||
[node name="StartButton" type="Button" parent="UiLayer/CalibrationOverlay"]
|
||||
[node name="StartButton" type="Button" parent="UiLayer/CalibrationOverlay" unique_id=468536630]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
@@ -146,4 +142,5 @@ offset_top = -120.0
|
||||
offset_right = 140.0
|
||||
offset_bottom = -72.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
text = "Kalibrierung starten"
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
[gd_scene format=3 uid="uid://cmainmenu001"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/menu.gd" id="1_menu"]
|
||||
|
||||
[node name="Menu" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_menu")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.08, 0.09, 0.14, 1)
|
||||
|
||||
[node name="CenterBox" type="VBoxContainer" 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 = -180.0
|
||||
offset_top = -240.0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 240.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 16
|
||||
alignment = 1
|
||||
|
||||
[node name="Title" type="Label" parent="CenterBox"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.98, 1)
|
||||
theme_override_font_sizes/font_size = 32
|
||||
horizontal_alignment = 1
|
||||
text = "alox test game"
|
||||
|
||||
[node name="Subtitle" type="Label" parent="CenterBox"]
|
||||
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 = "Hauptmenü"
|
||||
|
||||
[node name="Spacer" type="Control" parent="CenterBox"]
|
||||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="DemoButton" 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 = "Demo"
|
||||
|
||||
[node name="ConfigButton" 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 = "Config"
|
||||
|
||||
[node name="PongButton" 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 = "Pong"
|
||||
|
||||
[node name="ColorGameButton" 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 = "Color Game"
|
||||
|
||||
[node name="ExitButton" 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 = "Exit"
|
||||
@@ -0,0 +1,156 @@
|
||||
[gd_scene format=3 uid="uid://dbq0yorbl7vwu"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/pong.gd" id="1_pong"]
|
||||
[ext_resource type="Script" path="res://scripts/ball.gd" id="2_ball"]
|
||||
[ext_resource type="Script" path="res://scripts/calibration_overlay.gd" id="3_calib"]
|
||||
|
||||
[node name="Pong" type="Node2D"]
|
||||
script = ExtResource("1_pong")
|
||||
|
||||
[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.08, 0.09, 0.14, 1)
|
||||
|
||||
[node name="Platform" type="Polygon2D" parent="."]
|
||||
color = Color(0.25, 0.72, 0.95, 1)
|
||||
polygon = PackedVector2Array(-80, -12, 80, -12, 80, 12, -80, -12)
|
||||
position = Vector2(576, 600)
|
||||
|
||||
[node name="Ball" type="Node2D" parent="."]
|
||||
position = Vector2(576, 320)
|
||||
script = ExtResource("2_ball")
|
||||
|
||||
[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 = 560.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="ThresholdPanel" type="VBoxContainer" parent="UiLayer"]
|
||||
offset_left = 16.0
|
||||
offset_top = 48.0
|
||||
offset_right = 420.0
|
||||
offset_bottom = 148.0
|
||||
|
||||
[node name="ThresholdCaption" type="Label" parent="UiLayer/ThresholdPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Schwellwert: 3000"
|
||||
|
||||
[node name="ThresholdSlider" type="HSlider" parent="UiLayer/ThresholdPanel"]
|
||||
custom_minimum_size = Vector2(380, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 0.0
|
||||
max_value = 15000.0
|
||||
step = 50.0
|
||||
value = 3000.0
|
||||
tick_count = 16
|
||||
ticks_on_borders = true
|
||||
|
||||
[node name="SensitivityCaption" type="Label" parent="UiLayer/ThresholdPanel"]
|
||||
layout_mode = 2
|
||||
theme_override_colors/font_color = Color(0.75, 0.8, 0.9, 1)
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "Bewegungsstärke: 6 %"
|
||||
|
||||
[node name="SensitivitySlider" type="HSlider" parent="UiLayer/ThresholdPanel"]
|
||||
custom_minimum_size = Vector2(380, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 1.0
|
||||
max_value = 100.0
|
||||
step = 1.0
|
||||
value = 6.0
|
||||
tick_count = 11
|
||||
ticks_on_borders = true
|
||||
|
||||
[node name="AccelLabel" type="Label" parent="UiLayer"]
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -320.0
|
||||
offset_top = -72.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = -20.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
theme_override_colors/font_color = Color(0.9, 0.92, 0.55, 1)
|
||||
theme_override_font_sizes/font_size = 16
|
||||
horizontal_alignment = 2
|
||||
text = "x: — y: — z: —"
|
||||
|
||||
[node name="RecalibButton" type="Button" parent="UiLayer"]
|
||||
visible = false
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -220.0
|
||||
offset_top = 12.0
|
||||
offset_right = -16.0
|
||||
offset_bottom = 44.0
|
||||
grow_horizontal = 0
|
||||
text = "Kalibrierung neu starten"
|
||||
|
||||
[node name="CalibrationOverlay" type="Control" parent="UiLayer"]
|
||||
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("3_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 = -360.0
|
||||
offset_top = 80.0
|
||||
offset_right = 360.0
|
||||
offset_bottom = 140.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