feat(win): T-WIN-008/009/010 主界面/游戏/结算/来源展示/关于页
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
class_name AboutScreen
|
||||
extends Control
|
||||
|
||||
## T-WIN-010:关于页面 + 开源声明(可滚动)
|
||||
## 文档 §8.3 要求 Windows 客户端与 Android App 的「关于」页展示同款声明。
|
||||
|
||||
const UiKit = preload("res://src/ui/ui_kit.gd")
|
||||
const Credits = preload("res://src/ui/credits.gd")
|
||||
|
||||
var _on_back: Callable = Callable()
|
||||
|
||||
|
||||
func _init(on_back: Callable = Callable()) -> void:
|
||||
_on_back = on_back
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
|
||||
var root := UiKit.vbox(10)
|
||||
root.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
root.offset_left = 24
|
||||
root.offset_top = 18
|
||||
root.offset_right = -24
|
||||
root.offset_bottom = -18
|
||||
add_child(root)
|
||||
|
||||
var header := UiKit.hbox(12)
|
||||
header.add_child(UiKit.title("关于 OpenDance Studio"))
|
||||
header.add_child(UiKit.expander())
|
||||
var back := UiKit.button("返回主菜单", func(): if _on_back.is_valid(): _on_back.call())
|
||||
header.add_child(back)
|
||||
root.add_child(header)
|
||||
|
||||
var info := UiKit.panel()
|
||||
var info_box := UiKit.vbox(2)
|
||||
info_box.add_child(UiKit.label("Windows 客户端 v%s" % ProjectSettings.get_setting("application/config/version", "0.1.0"), UiKit.FONT_HEADING))
|
||||
info_box.add_child(UiKit.muted("摄像头跳舞评分系统:接收 Android 辅助 App 通过 WebSocket 推送的 33 点骨骼关键点,驱动 VRM 角色并实时 DTW 评分。"))
|
||||
info_box.add_child(UiKit.spacer(4))
|
||||
info_box.add_child(UiKit.muted("契约版本:rest-api / data-models / skeleton-topology / websocket-keypoints / model-formats = v%s" % Credits.CONTRACT_VERSION))
|
||||
info_box.add_child(UiKit.muted("本客户端仅接收关键点,不接收、不存储任何视频画面。"))
|
||||
info.add_child(info_box)
|
||||
root.add_child(info)
|
||||
|
||||
var credits_panel := UiKit.panel()
|
||||
var credits_box := UiKit.vbox(4)
|
||||
credits_box.add_child(UiKit.heading("开源项目声明"))
|
||||
credits_box.add_child(UiKit.muted("共 %d 项;与 contracts/open-source-credits.md 及 THIRD_PARTY.md 保持一致。" % Credits.entry_count()))
|
||||
var text := UiKit.rich_text()
|
||||
text.bbcode_enabled = true
|
||||
text.text = Credits.to_bbcode()
|
||||
text.custom_minimum_size = Vector2(0, 320)
|
||||
credits_box.add_child(text)
|
||||
credits_panel.add_child(credits_box)
|
||||
credits_panel.size_flags_vertical = Control.SIZE_EXPAND_FILL
|
||||
root.add_child(credits_panel)
|
||||
Reference in New Issue
Block a user