Files
blub-blub/scenes/ui/hud.tscn
T
ttipo 446d8d177c 바탕화면 바닷속 방치형 위젯 첫 커밋
화면 아래 가장자리에 가로로 깔리는 Godot 4.7 위젯.
거품을 모아 바다를 꾸미고, 꾸밀수록 거품이 더 빨리 모인다.

- 도킹 창: 투명·테두리 없음, 화면 폭 전체, 위/아래 가장자리 스냅,
  높이 프리셋, 클릭 통과(모서리로 복귀), DPI 배율 보정
- 3/4 부감 격자: 구역당 9x6, 전체 45x6 = 270칸.
  바닥은 위에서, 물체는 서 있는 모습으로 그리고 Y 정렬로 앞뒤를 가린다
- 구역 5개(얕은 바다 -> 열수구): 앞 구역을 꾸며야 다음이 열린다
- 칸이 곧 한계인 경제: 배치/이동/치우기(절반 환불), 여러 칸짜리 장식
- 저장: 30초 자동 저장, 백업 한 세대, 8시간 상한 오프라인 보상,
  격자 이전 형식 저장본 자동 이전
- 스모크 테스트 60여 개 (test.ps1)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-01 17:59:50 +09:00

122 lines
2.8 KiB
Plaintext

[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://scenes/ui/hud.gd" id="1_hud"]
[node name="HUD" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_hud")
[node name="ControlBar" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 0
offset_left = 12.0
offset_top = 10.0
offset_right = 12.0
offset_bottom = 10.0
mouse_filter = 2
[node name="HBox" type="HBoxContainer" parent="ControlBar"]
layout_mode = 2
mouse_filter = 2
theme_override_constants/separation = 14
[node name="BubblesLabel" type="Label" parent="ControlBar/HBox"]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 2
text = "0"
vertical_alignment = 1
[node name="Sep1" type="VSeparator" parent="ControlBar/HBox"]
layout_mode = 2
mouse_filter = 2
[node name="BpsLabel" type="Label" parent="ControlBar/HBox"]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 2
text = "초당 0"
vertical_alignment = 1
[node name="BeautyLabel" type="Label" parent="ControlBar/HBox"]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 2
text = "아름다움 0"
vertical_alignment = 1
[node name="Sep2" type="VSeparator" parent="ControlBar/HBox"]
layout_mode = 2
mouse_filter = 2
[node name="ZoneLabel" type="Label" parent="ControlBar/HBox"]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 2
text = "구역 1/5"
vertical_alignment = 1
[node name="Sep3" type="VSeparator" parent="ControlBar/HBox"]
layout_mode = 2
mouse_filter = 2
[node name="ShopButton" type="Button" parent="ControlBar/HBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(78, 32)
layout_mode = 2
size_flags_vertical = 4
text = "상점"
[node name="MenuButton" type="Button" parent="ControlBar/HBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 32)
layout_mode = 2
size_flags_vertical = 4
text = "···"
[node name="Trash" type="PanelContainer" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -110.0
offset_top = -50.0
offset_right = 110.0
offset_bottom = -12.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2
[node name="TrashLabel" type="Label" parent="Trash"]
unique_name_in_owner = true
layout_mode = 2
mouse_filter = 2
text = "여기에 놓아 치우기 (절반 돌려받음)"
horizontal_alignment = 1
vertical_alignment = 1
[node name="Toast" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -240.0
offset_top = 16.0
offset_right = 240.0
offset_bottom = 60.0
grow_horizontal = 2
mouse_filter = 2
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3