二七王:回退自造的图集叠绘,改用平台既有 SpriteManager.setNumberImage
方案作废并纠正认知:多帧图片精灵【不是】只能显示一位数——SpriteManager 第 1154 行 早有 setNumberImage(spriteId, text, charWidth):把整串文本设给一个多帧图片精灵, 引擎按字符逐帧渲染,精灵宽度按「字符数 × charWidth」自动调整。bc75e40 造的 drawImageRegion + NumberRenderer 是重复轮子,本次整体回退(revert bc75e40)。 - 回退:删除 gameabc-framework/ui/NumberRenderer.js 与其单测,SpriteManager 与 index.html 恢复到改动前(与 bc75e40^ 逐字节一致)。 - ImageResources.js:数字类资源改为 16 帧、固定帧序 0123456789.+-x/p,逐条写明 各帧含义、第16帧后缀(选主张数=「张」;结算/叫分的后缀标注待美术与规则确认,未瞎填)、 单字符宽高与整图尺寸(16 × 单字宽),并说明帧序不可重排、不可省略占位。 - LayoutConstants.js:NUM_STYLE 改为 setNumberImage 所需的 res/charWidth/charHeight/suffix。 - Layout_Action.js:两个数字节点 h 取 charHeight(SSOT),w 留运行时注入 (宽度由 setNumberImage 按字符数自动改,随位数变)。 - Sprites_Action.js / Sprites_Result.js:注释改为 setNumberImage 用法; 结算玩家栏 ACC_TPL_SCORE_NUM 是复制精灵也能用(该接口不依赖绘制回调)。 - test_constants.js:NUM_STYLE 守卫改为校验 charWidth/charHeight/suffix 与 「h 同源、w 运行时注入」;suffix 限定为 setNumberImage 支持的 分/倍/张。 - 文档:清单 §1.3/§1.5/§3.6/§5.4/§6.8 与前端 02 的那一节全部按 setNumberImage 重写, 三种机制改为「文字精灵 / setFrame 切帧 / setNumberImage」,并记下这次误判作为反例。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -20,12 +20,12 @@ EQW_Layout.CALL_BTN_GRID = {
|
||||
|
||||
//档位分数数字:贴对应档位按钮居中。CALL_BTN_1..14 是 14 个固定精灵,但本节点是共用模板,
|
||||
//target 由调用方按第几档注入(不预置单一 target)。
|
||||
//2026-08-26:改为图集叠绘(NumberRenderer),一个精灵画完整分数,故宽高【不再随位数变化】——
|
||||
//直接取 NUM_STYLE.CALL_SCORE 的绘制区宽与单字高(SSOT:数值只在 LayoutConstants 定义一处)
|
||||
//宽度随位数变化(SpriteManager.setNumberImage 会按【字符数 × charWidth】自动改精灵宽),
|
||||
//故 w 留到运行时注入;高度恒为单字高,取 NUM_STYLE.CALL_SCORE.charHeight(SSOT,2026-08-26)
|
||||
EQW_Layout.CALL_BTN_SCORE_TEXT = {
|
||||
kind: 'attach', targetKind: 'sprite', hAlign: 'center', vAlign: 'middle', offsetY: 4,
|
||||
w: EQW_Layout.NUM_STYLE.CALL_SCORE.width, h: EQW_Layout.NUM_STYLE.CALL_SCORE.charHeight,
|
||||
runtime: ['target']
|
||||
h: EQW_Layout.NUM_STYLE.CALL_SCORE.charHeight,
|
||||
runtime: ['target', 'w']
|
||||
};
|
||||
|
||||
//档位子数角标:贴对应档位按钮右上角,纯文字无底图,清单未给宽高(同上,调用方注入 target)
|
||||
@@ -51,12 +51,13 @@ EQW_Layout.MAIN_SUIT_LINE = {
|
||||
itemWidth: 128, itemHeight: 55, spacing: 9, anchor: 'left'
|
||||
};
|
||||
|
||||
//张数数字:贴对应花色按钮下方居中,一个花色【一个】精灵(图集叠绘,两位数由 NumberRenderer 逐位画)。
|
||||
//2026-08-26:原十位/个位两节点合并为本节点;宽高取 NUM_STYLE.MAIN_SUIT_COUNT(SSOT,调用方注入 target)
|
||||
//张数数字:贴对应花色按钮下方居中,一个花色【一个】精灵,整串「N张」由 setNumberImage 显示。
|
||||
//2026-08-26:原十位/个位两节点合并为本节点;宽度随位数变化(2 或 3 个字符)留到运行时注入,
|
||||
//高度恒为单字高,取 NUM_STYLE.MAIN_SUIT_COUNT.charHeight(SSOT)
|
||||
EQW_Layout.MAIN_SUIT_COUNT = {
|
||||
kind: 'attach', targetKind: 'sprite', hAlign: 'center', vAlign: 'bottom', offsetY: -6,
|
||||
w: EQW_Layout.NUM_STYLE.MAIN_SUIT_COUNT.width, h: EQW_Layout.NUM_STYLE.MAIN_SUIT_COUNT.charHeight,
|
||||
runtime: ['target']
|
||||
h: EQW_Layout.NUM_STYLE.MAIN_SUIT_COUNT.charHeight,
|
||||
runtime: ['target', 'w']
|
||||
};
|
||||
|
||||
//对数角标文字:贴对应花色按钮右上角(按钮帧内已含角标底,本节点只定位叠加的文字)。
|
||||
|
||||
Reference in New Issue
Block a user