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,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 = "—"
|
||||
Reference in New Issue
Block a user