27 KiB
HUD框架
一句话:界面布局与呈现层契约 状态:已定稿(自旧体系迁移) 旧版参考:../../../archive/gdd-2026-09-14/d1-hud-framework.md
设计目的
HUD框架把各玩法系统产生的事实变成玩家看得见、点得动、归因得了的界面。玩家对它的正确感觉是"一块干净的玻璃":看见的每一步都是真的,结算的每一行都能指回自己刚才的哪步棋,界面绝不替玩家思考、不静默改判、不用装饰伪装逻辑差异。
它同时是全项目唯一自带画面的表现层系统:不含任何玩法状态与玩法数值,显示的一切从上游现读现显;玩家改变游戏状态的操作它只递话、不执行。少了它,排雷玩法的动作没有落点,战斗结算的明细流水没有读者。
系统范围
边界这样划:本系统管"怎么呈现、怎么翻译输入、弹层怎么排队"。一个动作合不合法、结果算什么意思,归排雷玩法、行动经济、战斗结算等上游裁定;画面具体长什么样、组件落在哪一像素,屏级权威是 battle.md——本文只锁系统级契约。
负责:
| 负责 | 说明 |
|---|---|
| 战斗屏三区布局 | 三区系统级契约与常驻组件呈现形态;棋盘格尺寸定值档与装板校验 |
| 输入翻译 | 鼠标操作翻译成意图批次、一帧内整批提交;悬停预承诺与可挖域指示 |
| 提示体系 | toast 轻提示与一次性提示;拒绝反馈的呈现映射 |
| 模态覆盖层家族 | 图例面板、明细回看、胜负终局共用的层级纪律 |
| 订阅与载荷契约 | 呈现层订阅纪律、信号载荷的消费侧断言 |
| 程序化占位 | 美术终稿前的代码占位策略与图标键挂接 |
| 游玩遥测 | 拒绝、刷新尝试等观测行,写入试玩日志供调参取数 |
| 可访问性基线 | 字号、对比、闪烁、减动效、纯鼠标的验收底线 |
不负责:
| 不负责 | 归谁 |
|---|---|
| 任何玩法状态与玩法数值 | 各玩法系统;数值表本体归数据配置 |
| 合法性判定与机制语义裁定 | 排雷玩法、行动经济、战斗结算 |
| 屏级布局与动画时长的像素级裁决 | battle.md |
| 美术终稿与动画密度 | art-bible与战斗表现 |
| 音频、教学内容、本地化文本生产 | 音频、教学引导、设置与本地化 |
| 任何随机消费 | 无——呈现层零随机 |
在核心循环中的位置
玩家输入(挖掘期鼠标操作)──▶ HUD框架翻译成意图批次 ──▶ 排雷玩法受理 / 战斗结算兑现 ──▶ 明细流水与动作回执 ──▶ HUD框架就地刷新
HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻译官,结算期它是流水的播音员。它不产生任何玩法事实,只负责把玩家的操作递进去、把结果画出来。
核心规则
本章六节:前三节定画面的骨架与进出规则(屏、弹层、刷新),后三节定数据与资产怎么进来(载荷、占位、底线)。
战斗屏三区双舞台:挖掘与结算同屏不切场景
战斗屏是 MVP 唯一的玩法屏,采用"双舞台"布局——战斗画面与扫雷图两块区域同屏常驻、互不顶替:挖掘期敌人在上方待机可见,轮末结算在原地逐行展开,全程不切换场景。"扫雷的因"与"战斗的果"因此永远摆在一起,因果不需要玩家凭记忆拼接。
三区各管一块:
| 区 | 位置与尺寸 | 管什么 |
|---|---|---|
| B 战斗画面 | 全宽 252px | 主角站桩立绘、敌人站桩立绘 ×1–3(全站桩形态,2026-09-20 用户拍板:无框立绘+底座、状态小图标挂血条下,英雄卡/敌人卡退役)、轮次阶段指示、结算明细带 |
| C 角色信息 | 左下 240×548 | 生命 / 攻击 / 储备数据框、状态效果槽、小人立绘 |
| D 扫雷图 | 中下约 1036×548(原右下面板删除后横向加宽) | 行动点条与按钮组、棋盘本体、toast 槽 |
分区尺寸与组件落位的像素级裁决归 battle.md;三区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。节点链进度不在战斗屏呈现——它由关卡画面(选路覆盖层常驻形态)的节点态承载,见关卡节点地图。
结论:棋盘格边长取两档定值——12×12 的板用 36px、10×10 的板用 45px(battle.md 拍板值);下式不推导这两档,只在装板时校验"定值塞得进扫雷图区",违例立即报错中止。
可行性校验(装板期断言):
floor( min(棋盘区宽 − 水平边距, 棋盘区高 − 行动点条高 − 垂直边距) ÷ N ) ≥ 该档定值
且该档定值落在 [30, 45] px
数字字号 = max(18, ceil(格边长 × 0.5)),像素字体按整数倍缩放
| 变量 | 含义 | 现行值 |
|---|---|---|
| N | 棋盘边长格数 | 10 或 12(棋盘生成的两档尺寸) |
| 定值档 | 12×12 → 36px;10×10 → 45px | 结构冻结 |
| 棋盘区宽 / 高 | 扫雷图区基准尺寸 | 1280×800 下 1036 / 504(548 减行动点条 44) |
| 边距 | 水平 / 垂直 | 各 16px |
1280×800 下实算:可用高度 488px,12×12 得 40 ≥ 36、10×10 得 48 ≥ 45,两档都通过。宽度向同理余量充裕(1036−16 远大于 12 格定值档所需)。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。
提示与弹层:轻提示随起随消、重弹层排队进出
界面弹出的东西分两族。toast(从棋盘区上缘内侧浮出的轻提示条)是非模态的:弹出期间玩家照常操作棋盘,约 2.5 秒自动消退、不劫持输入。模态覆盖层(弹出期间挡住下方操作、要先处理才能继续的那种弹层)则相反,图例面板、结算明细回看、胜负终局画面都属于这族。
| 弹出物 | 模态性 | 进出规则 |
|---|---|---|
| toast | 非模态 | 自动消退 2.5 秒,不打断挖掘 |
| 图例面板 / 明细回看 / 胜负终局 | 模态 | 同一张登记序栈:统一入栈出栈、后开置顶、关闭逐层恢复 |
两条纪律横跨两族。其一,"第一次遇到"类提示(本作没有双击快开、挖不相邻格要先走近)走 toast,每场冒险至多弹一次。其二,拒绝反馈不属于一次性族——每次被拒都要可感知,且图标与文案双通道冗余(不靠颜色单独承载);棋盘面拒绝(动作不合棋盘规则,目标格边框闪)与资源面拒绝(行动点或储备不足,数字脉冲)必须可区分。图例面板恒可随时打开回看,不设解锁门。
呈现层订阅纪律:界面不自持状态、订阅面只留两条线
呈现层不自持任何玩法状态——它不记账、不缓存玩法数值,画面上的每个数字都是触发时刻从上游现读的。全部刷新触发只来自两类通道:核心信号与动作回执。这条纪律是切片时期两起"界面在核心对象销毁后回读崩溃"的结构性防线。
订阅面刻意收窄:呈现层直接订阅的信号只有战斗结算的明细流水(逐行结算事件)与关卡节点地图的推进信号(见关卡节点地图)。排雷玩法与行动经济的消息一律经组合根(全项目唯一的核心装配与接线点:玩家写操作的唯一入口、界面消息的中转站)转发,或走命令式回执。
命令式刷新面如实登记——这些数据源不发通知或只发部分通知,界面刷新绑定在"动作调用返回"或"结算编排完成"的时点上,由组合根重查只读面后就地更新:
| 数据面 | 刷新时点 |
|---|---|
| 棋盘(旗、小人位置) | 意图批次调用返回后重查 |
| 行动点 / 储备 | 每次写路径回执后重读 |
| 状态效果 | 绑定结算编排完成时点 |
| 已开格奖励身份 | 已开格揭显时经身份解析只读回调查询(query_identity,组合根注入) |
就地更新指只改变化的字段、不整块重建界面——整块重建会把敌人立绘死亡灰化这类就地状态吞掉。
信号载荷契约:消息带着当场就能用的数据来
核心发给呈现的每份消息都必须"呈现当下就能用",三条规则:
- 销毁前捕获:终局与死亡的呈现数据(血条归零、卡体灰化、终局判定行)在核心对象销毁之前就已写进明细流水与快照。
- 载荷自包含:每行明细自带来源、数值、目标——界面不做反推、不回查容器补数据。
- 禁回读生命周期态:"战斗还在不在"只准问封装好的只读查询,禁止读核心对象的内部状态位。
为什么这样定:核心对象销毁后,指向它的引用随时失效或返回空数据,"先销毁再补读"的时序在切片里崩过两次。载荷自包含还有一条可验收的推论——终局画面只消费流水与快照即可逐像素复现,这条断言进验收标准。
配套一条总纪律:消费的每份跨系统载荷,字段清单先写成消费侧断言(缺字段、多字段都算失败——信号参数没有运行时类型检查,断言是唯一防线)。逐字段 schema 底稿见旧版参考归档的载荷表;现行口径须回各上游系统文档的对外契约逐项对齐,缺口见「待办」。
程序化占位与图标键:先用代码画顶着、占位也要过硬指标
美术终稿未到位的面(砖面、敌像、图标、徽章、立绘)用程序化图形先行占位:色值直接取 art-bible 的冻结色板,形状按其形状语言用代码绘制。占位不是免检通行证——数字可读性硬指标(1–8 全档对格底对比 ≥4.5:1、半倍缩放可辨、纹带不侵入数字字形区)对占位同样适用;格子样张批不阻塞本系统其余验收。
图标用"图标键"挂接——哪个数据行配哪枚图标的固定对照表:效果、奖励、格面类型、敌种各自的数据表主键直接作图标键,一键一枚专属纹样。视觉侧依据与键集清单归 art-bible §4.6;映射一经冻结全局恒定、跨局禁重掷,键集扩容走该节修订,禁止运行时换图。映射表里查不到的键按错误处理:立即断言加"?"占位纹样与诊断,禁止静默显示空图标。
可访问性基线:看得清、不闪、纯鼠标玩得通
以下基线是验收底线,不是打磨项:
| 基线 | 要求 |
|---|---|
| 对比度 | 全部数字对格底 ≥4.5:1 |
| 色弱安全 | 无信息仅靠色相承载;格态在灰度截图下可逐格分类 |
| 字号下限 | 棋盘数字 ≥18px、明细正文 ≥14px、tooltip ≥13px(1280×800 基座) |
| 闪烁 | 无每秒超过三次的闪烁 |
| 减动效 | 提供全部动画时长减半或跳终态的开关;结算逐行兑现是信息载体——可加速、不可整体跳过 |
| 输入 | 全部操作纯鼠标可完成 |
| 中文字体 | 随包内置并设为默认——运行时默认字体无中文字形 |
按钮文案以 4 个汉字为宽度上限(「停手」「弃图刷新」等),译成西文不破版。正式的分层方案(文本缩放、色盲模式、按键重映射)待专项文档定稿,见 P1 后置。
依赖与输出
上游读数与下游输出见下表;呈现层零直调玩法系统写接口——写路径唯一入口是组合根。
| 方向 | 系统 | 接口要点 |
|---|---|---|
| 上游 | 排雷玩法 | 棋盘只读投影(格态、数字、旗、小人)与移动路径查询;玩家意图批次经组合根提交 |
| 上游 | 行动经济 | 行动点 / 储备 / 相位只读值;刷新入口可用性预判加返回值兜底 |
| 上游 | 战斗结算 | 明细流水是结算明细带的统一数据源(现行 9 类行封闭协议);段序编排信号经组合根接线 |
| 上游 | 敌人系统 | 英雄与敌人的只读投影(血量、顺位、摇定动作〔pending_skill/type/name〕、敌方增益 effects、存活——经战斗结算呈现快照;敌人技能池批批 2 定稿:当前拍/行动环进度字段拆除,池与权重不公开) |
| 上游 | 增益状态 | 状态投影经战斗结算呈现面取得,零直读 |
| 上游 | 地图战斗资源 | 已开格奖励身份投影(query_identity 只读回调,组合根注入)零直读 |
| 上游 | 关卡节点地图 | 节点链、当前节点、跨战斗生命携带的读数;胜利后推进 |
| 下游 | 战斗表现 | 交付三区布局、明细带呈现位、敌人呈现语义(站桩形态);它只叠加动画密度与演出 |
| 下游 | 音频 | 挂点事件源(明细行类型流、toast 触发);MVP 无音频 |
| 下游 | 教学引导 | toast 与图例面板两个承载位——教学内容装进这两个容器 |
| 下游 | 设置与本地化 | 中文字体随包、按钮宽度、术语表等契约的消费方 |
呈现义务来源清单——各上游系统点名要本系统兑付的呈现义务,一行一条;规则本体以对方文档为准:
| 义务来源 | 本系统兑付的呈现义务 |
|---|---|
| 排雷玩法 | 已开 / 未开格态一眼可辨;悬停预承诺与可挖域常驻指示;移动路径预览即合法性指示;每次拒绝可感知且棋盘面细因可区分;停手被改判可感知 |
| 行动经济 | 行动点与储备常显;储备清零反馈;棋盘面与资源面拒绝可区分;刷新入口与代价可读 |
| 战斗结算 | 未生效类明细行(奖励未生效)的呈现;高光行强调 |
| 关卡节点地图 | 节点链进度呈现(关卡画面选路覆盖层节点态承载:暗金已过、金当前、候选下一跳通道亮金、Boss 紫赤描边(旗朱→紫赤 2026-09-26 封印紫批));选路覆盖层只读呈现(零自动推进停点语义) |
| 敌人系统 | 意图线索映射成文且全局恒定;单位顺位与血条可读;敌方共享层数各卡同值 |
| 增益状态 | 状态栏常显;无状态时整排槽隐藏;有利 / 有害极性呈现不看数值符号 |
| 地图战斗资源 | 已开格的奖励身份常读 |
| 魔法道具 | 库存条常读;使用交互与目标拾取;板级叠加层信息呈现 |
| 棋盘生成 | 零合法板的诚实告知(数据面经战斗结算上抛,本系统只管提示形态) |
P0 最小闭环
- 进入战斗屏:三区同屏就绪,半秒内首格可点。
- 挖掘期鼠标操作经单意图帧整批提交(唯一写路径,经组合根)。
- 回执链:组合根重查只读面,界面字段级就地刷新。
- 轮末进入结算:棋盘区锁输入,明细带展开逐行兑现(战斗结算流水驱动)。
- 终局呈现(胜利 / 失败)伴随状态全清与储备清零反馈。
- 关卡末清库反馈:义务载体 = 魔法道具背包,随魔法道具 P0 落地(现行切片无库存容器,直接进下一节点或返回)。
P1 / P2 后置
| 优先级 | 内容 | 后置原因 |
|---|---|---|
| P1 | 远格点击自动"先移动再挖"复合意图 | 移动免费高频,两击摩擦先经实测验证再裁 |
| P1 | Gamepad 焦点序 | 纯鼠标已覆盖 MVP 全部操作 |
| P1 | 可访问性正式分层(文本缩放 / 色盲模式 / 按键重映射) | 待可访问性专项文档定稿 |
| P1 | 相邻域屏(节点奖励 / 关卡结算)完整屏形态 | 归后续 UX 文档;MVP 以覆盖层反馈承载 |
| P2 | 提示一次性作用域升级为存档级"一生一次" | 归存档序列化与元进度后重议 |
| P2 | 调试面板退役 | 正式侧归元进度;诊断按钮保留为调试设施 |
| P2 | 探测类魔法道具的显影呈现面 | 接口归魔法道具定稿批 |
| P2 | 音频挂点出声 | MVP 无音频,归音频 |
调参表
本系统的参数全部是呈现节奏与可读性常量,不是玩法数值——玩法数值一律归数据配置的表,与本表无关。修订本文常量走文档修订流程。本表常量无数据表承载,为文档面唯一事实源;入驻 .tres 时本列改指路。
| 参数 | 域 | 现行值(文档自持,无表承载) | 说明 |
|---|---|---|---|
| toast_display_ms | 每条提示 | 2500 | 过长挡节奏,过短读不完拒绝原因 |
| move_slide_ms | 每次移动 | ≤150(provisional) | 推荐值,移动手感留实测复核 |
| board_install_fade_ms | 每次装板 | 200 | 换图淡入时长 |
| clear_celebration_ms | 每次清图 | 3000–5000 | 上限约束:三五秒即收 |
| font_min_board / font_min_detail / font_min_tooltip | 1280×800 基座 | 18 / 14 / 13 px | 可访问性基线 |
| reduce_motion_scale | 每段动画 | 0.5 或跳终态 | 减动效开关系数 |
| detail_band_height | 结算明细带 | 24 / 84 px | 摘要 / 实时流两态高度 |
结构冻结(非调参项,改动走文档修订):三区布局与分区尺寸、双舞台常驻、单意图帧纪律、弹层层级纪律、图标键映射契约、程序化占位策略、订阅纪律。性能预算为引用值:同屏 draw calls < 200、进入战斗屏 500ms 内可交互。
验收标准
以下判据逐条可测,全部通过才算闭环达标。
- 三区无遮挡、无重叠、无内容裁切(棋盘全部格子与数字完整可见),分区尺寸与 battle.md 布局表一致;同屏 draw calls < 200;进入战斗屏 500ms 内首格可点。
- 两档板装板后格边长取定值档(36 / 45px)且可行性校验通过;数字字号不低于下限、整数倍缩放无模糊。
- 已开 / 未开格态在灰度截图下可逐格分类;已引爆雷格"可通行可读"(已开底加巢穴纹、可作移动目标)。
- 悬停光标三语义(移动 / 挖 / 旗)随目标切换并高亮目标格;悬停已开格画出合法路径(不可达不显示);可挖域常驻呼吸微光。
- 一帧内意图整批到达,停手点击终结当帧收集。
- 每次拒绝可感知:棋盘面、资源面、相位三类各有呈现且前两类可区分;停手被改判(本轮已清图)玩家可感知;拒绝反馈图标加文案双通道。
- 结算逐行实时滚出且每行带来源标注;未生效类行聚合计数并带形状冗余;零值行不被吞;效果行的单次贡献与池合成值分示、禁相加误读。
- 高光三档:标中旗行金框、清图奖励行金框、完美排雷全屏喝彩级——庆祝不打在空兑现上(首份即零兑付则不发高光)。
- 状态槽显示图标加层数加剩余结算次数,悬停见来源;极性按键级表呈现(金满框 / 红缺框),空态整排隐藏、数据框上移补位;战斗结束全清有微文案。
- 敌人呈现(站桩立绘,2026-09-20 全站桩拍板后载体由敌人卡改为无框立绘+底座,义务面平移不重述):意图占位 = 本拍摇定结果的动画占位(敌人技能池批三档可见性——普通攻击零表示、特殊技类型级提示〔攻/防系两型〕,不预告技能名与数值、池与权重不公开)且挖掘期全程可见、映射跨局恒定、顺位可读、血量数字可读、敌方共享层数各立绘同值(血条悬浮头顶、状态小图标挂血条正下方);死亡灰化加碎裂退场(禁止瞬间消失)且就地更新不丢灰化态。
- 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂(关卡末清库反馈义务载体 = 魔法道具背包,随魔法道具 P0 落地补验收)。
- 任一模态层打开时遮挡物隐藏或输入锁定、关闭逐层恢复;tooltip 与明细行等动态区固定槽高、换行裁剪不推挤布局。
- 终局呈现只消费流水与快照:核心对象销毁后呈现层对生命周期状态零回读;终局后重放渲染与实时渲染一致。
- 消费的每份载荷逐字段断言通过(缺字段、多字段都算失败)。
- 字号下限成立;无每秒超三次闪烁;减动效开启时时长减半或跳终态(结算兑现降速不跳过);全程纯鼠标可玩;中文渲染无缺字。
- 呈现层零随机调用;切片临时名零残留。
待办
本系统待办条目已统一收编至 06-待办清单,本节不再逐条登记。
版本历史
| 版本 | 日期 | 改动 |
|---|---|---|
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」五条雾失义登记(雾图例条目、雾首遇一次性提示、四格态中的两个雾态、雾纹带与已开雾格 tint 残留、雾区全开合并域完成信号)。现行口径 = 格态两态一眼可辨(已开 / 未开)、图例面板只载现行格态与变异语义;通用变异框架的纹带形状通道保留为未来变异类型的呈现位 |
| v0.4 | 2026-09-16 | 敌人技能池批(与敌人系统 / 战斗结算 / registry / 切片代码同批):敌人卡义务改写——行为环环点拆除(proposal §2.4),意图徽标语义改「本拍摇定结果的动画占位」(普通攻击零表示 / 特殊技类型级提示两型:攻击系 ⚔ / 增益系 ✦),护甲行(护甲类型 + AC)保留常驻;敌方增益显示(蓄力/硬化)入敌卡状态行 + 状态槽图标键增 empower/fortify 两键(状态表九行全映射);呈现快照敌人字段消费面同步(摇定动作三字段 + effects,池与权重不投影);上游敌人系统行与验收条目同步 |
| v0.3 | 2026-09-16 | 格面资源批 UI 欠账收口(可选类道具与其轮末窗口已随 2026-09-15 代码批删除):战斗屏布局五区 → 四区(删 E 道具栏行,D 区加宽至约 1036px 并同步装板校验变量);删道具窗口弹层条款(原位点亮、非模态不入栈)、P0 闭环窗口锚点条目、「道具窗口原位点亮 / 至多选一件 / 禁用件带原因 / 空库存不弹窗」验收行;依赖与输出表的窗口选择提交、道具使用窗口呈现、库存查询义务删除或改述为现行口径(奖励身份投影经 query_identity 只读回调,零直读);关卡末清库反馈义务改载魔法道具背包,随魔法道具 P0 落地。魔法道具预留义务行与「待拍板」登记保持 |
| v0.5 | 2026-09-17 | 数值纪律收口批:调参表标注文档自持口径(无表承载常量的唯一事实源声明) |
| v0.6 | 2026-09-20 | 敌人卡形态裁决收口批(与 battle.md / 战斗表现 / 06 清单同批,台账 99):全站桩形态拍板——B 区主角与敌人均为无框立绘+底座、状态小图标挂血条正下方,英雄卡/敌人卡退役;B 区行、敌人呈现义务行(载体由卡改立绘,意图占位/共享层数各立绘同值/死亡灰化退场等义务面平移)、下游战斗表现交付行、就地更新示例措辞四处同步;攻击值等规划数据仍归 C 区数据框(C 区不动)。呈现快照数据面零改动(消费字段不变,只换呈现载体) |
| v0.7 | 2026-09-20 | 表现层三批落地 + 义务清单补行(代码同日三批:样式收敛 / 站桩改造 / 结算演出链):呈现义务来源清单补「关卡节点地图」行(节点链进度常显 + 选路覆盖层只读呈现——此前漏登记);新增结算演出覆盖层(跨区弹道/光带载体,兑现演出因果可视);减动效承诺落地(UiKit.motion 单点包装全部呈现层 tween 时长,开启时长减半、可挖域呼吸停格;切片期入口 = TunePanel 开关,正式设置层归设置批)。代码侧站桩载体(StandeeView)与卡片退役随 v0.6 裁决执行 |
| v0.8 | 2026-09-23 | 停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 ../../../dev/architecture/adr-0006-board-node2d-rendering.md 与 ../../../dev/architecture/board-node2d-migration-plan.md §1,代码实装另批并行):① 战斗屏布局四区 → 三区——删 A 区关卡进度条行(LevelStripView 退役删除,节点链进度呈现移出战斗屏、只留关卡画面);C/D 区纵向 520 → 548;装板校验变量与实算同步(棋盘区高 504、可用高度 488);② 呈现义务来源清单「关卡节点地图」行改承载口径——节点链进度由关卡画面选路覆盖层节点态承载(暗金已过 / 金当前 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件;③ 「四区」措辞全线改「三区」(负责表、节题、结构冻结、验收、下游战斗表现交付行),双舞台常驻语义不动。批内代拍板三项已追认(2026-09-24 用户确认):① B/C/D 字母保持不重编(字母是跨文档/代码注释的承载标识);② A 区 28px 纵向空间划归 C/D 底行(520 → 548;1920 档换算仍归表现层升级批);③ 关卡画面进度呈现由选路覆盖层节点态直接承载、不另设进度条组件 |
| v0.9 | 2026-09-23 | 渲染技术注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘本体 Node2D 化——BoardView 内部由 GridContainer+逐格控件改为 Control 壳 + SubViewport + Node2D 世界,类名/信号/公共方法契约不变、探针零改造;三区布局与性能预算(同屏 draw calls < 200)不变;程序化占位视觉等价平移,素材终稿按 art-bible §8.2 格面 32×32 暂定档槽位 1:1 换入 |
| v0.10 | 2026-09-26 | 渲染技术注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗舞台 Node2D 化——BattleStageView 内部由 PanelContainer+Control 站桩改为 Control 壳 + SubViewportContainer + SubViewport + Node2D 世界(StageWorld/StandeeBody),类名/setter 面/公共方法契约不变、调用点零改造;状态图标行与悬停 tooltip 保留 Control 载体挂壳层(伴随件);C6 字体注入挂点复用(set_world_font);三区布局与性能预算(同屏 draw calls < 200)不变;占位表现等价平移(时序常量逐字对照——等价证明见 production/qa/battle-stage-node2d-等价证明-2026-09-26.md) |