demo-game/scenes/demo.tscn
simon 84827c9782 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>
2026-05-29 21:43:44 +02:00

167 lines
4.9 KiB
Plaintext

[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 = "—"