diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-28 09:27:27 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-28 09:27:27 +0800 |
| commit | 27639a4a356010cba3e051179976db8c492e3038 (patch) | |
| tree | 7b6eba59063702f015dc3473a651686f6287830a /docs/维护说明.md | |
| parent | cd9b8cc13c3f03abe4b6b2c98281fc9b926b4acd (diff) | |
| download | living-village-27639a4a356010cba3e051179976db8c492e3038.tar.gz | |
docs: P38 界面审计结论、HUD 图标证据与维护说明
审计结论:启动动画/开始界面/HUD 窄条已达标,最大差距为 HUD 缺图标化;
证据 p38-splash-1/2(启动动画帧序列)+ p38-hud-day/night/closeup-2x;说明 digest
恒定(仅渲染层改动),check-no-white-blocks 5 帧 0 命中,附复现命令。
Diffstat (limited to 'docs/维护说明.md')
| -rw-r--r-- | docs/维护说明.md | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/维护说明.md b/docs/维护说明.md index 21eff71..fb4164f 100644 --- a/docs/维护说明.md +++ b/docs/维护说明.md @@ -1202,3 +1202,43 @@ late pass),故「灯笼光晕 + 水面」以生成器夜帧为准,「炊� # 运行日志打印 p37-shot=... page/selected/task 对照点 ``` - **范围**:首切片仅 4 职业;全村 NPC 职业化、技能树/等级、其他职业与玩家实体背包留待后续单。 + +## P38 启动/界面升级切片(HUD 图标化) + +审计 `docs/overnight-quality-brief.md` 方向 #2(启动动画 / 开始界面 / HUD,禁大黑块、星露谷式布局、 +不复制素材)后的现状与差距: + +- **已达标(沿用,未重复造轮子)**:启动动画 `LaunchScreen`(标题淡入 + 整屏暗幕退场,帧计数纯 + 函数、Esc/空格跳过)、开始界面 `TitleScreen`(分层天色 + 屋脊/水面剪影 + 灯笼 + 菜单入场, + 确定性 2s)、顶部 HUD `HudLayout`(半透明渐变窄条 + 强调线 + 每段半透明药丸 + 1px 描边, + `barHeight=36` 并非大黑块)、完整键位仅在暂停帮助页。 +- **最大差距(本单实现)**:顶部状态条只有文字,缺少**图标化**辨识度。已为五个常驻段各加一枚 + 7x7 原创点阵图标,用现有 `pixel` 贴图绘制(**无外部素材**): + 时段=太阳、时间=钟面、倍速=双箭头、体力=心形、钱币=圆形钱眼。 +- **布局**:`HudLayout` 每段 = 图标 `iconWidth`(7*2=14) + `iconGap`(6) + 文本;`segmentSpan` 为段总宽, + `textOrigin` 为文本起点;药丸底色与描边同时覆盖图标与文本。段高与 `barHeight` 不变,仍为窄条。 +- **回归测试**:新增 `src/LivingVillage.Desktop.Tests/P38HudIconTests.fs`(4 例:图标唯一且点阵良构、 + 段宽=图标+间隙+文本且不重叠/在 1280 内、段与布局确定性、昼夜底色半透明且覆盖图标与文本)。 + 既有 `P16HudTests` 未改(`segmentText`/`segmentWidth` 语义保留)。Release 全量 Desktop **186/186**、 + Kernel **119/119**。 +- **确定性**:HUD 仅改渲染层,不触 `Sim.step`;`--performance-baseline` 三次 `final_digest` + 仍恒为 `953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C`(digest 恒定证明 + 未改模拟;HUD 差异只在截图可见)。 +- **证据**(`docs/evidence/`,`git add -f`;`check-no-white-blocks.py` 5 帧 0 命中): + - `p38-splash-1.png`:启动动画淡入中帧(`frame-splash-mid`,标题显现中、暗幕未退尽)。 + - `p38-splash-2-menu.png`:启动结束、开始界面就位(屋脊/水面/灯笼 + 菜单面板)。 + - `p38-hud-day.png` / `p38-hud-night.png`:样例村庄真实运行昼 / 夜帧,顶部窄条五段图标 + 文本; + 两帧条内调色板亮色像素分别约 1386 / 1374,证明图标与文本都在场。 + - `p38-hud-closeup-2x.png`:顶部条 2x NEAREST 特写(可辨五枚图标与中文字)。 +- **复现**: + + ```bash + DLL=src/LivingVillage.Desktop/bin/Release/net8.0/LivingVillage.Desktop.dll + LV_AUTOPLAY_MENU_SHOT=1 LV_RECORD_DIR=/tmp/opencode/lv-p38-evidence xvfb-run -a -s "-screen 0 1280x720x24" dotnet "$DLL" + for h in 9.0 23.5; do tag=day; [ "$h" = 23.5 ] && tag=night + LV_AUTOPLAY_SAMPLE=1 LV_AUTOPLAY_RECORD=1 LV_AUTOPLAY_START_HOUR=$h LV_RECORD_EVERY=20 \ + LV_RECORD_NAME=p38-$tag- LV_RECORD_DIR=/tmp/opencode/lv-p38-evidence/$tag xvfb-run -a -s "-screen 0 1280x720x24" dotnet "$DLL" + done + ``` +- **范围**:本单只做 HUD 图标化(审计选出的最大差距);启动动画与开始界面已达标不再改动; + 更细的 HUD 动效/主题换肤留待后续单。 |
