二七王:选主面板按美术实际出图方式(一张图5帧)重做资源与精灵定义
BTN_SUIT_CHOOSE 改为 5 帧(4 花色按钮各含底+图标+角标底、帧5=投降按钮含底+文字), 删除独立的 SUIT_ICON_L(512)/BTN_SURRENDER(534)/花色图标精灵/角标底精灵/投降文字精灵; 花色张数从单个文字精灵改为图片数字精灵(十位+个位),新增资源 NUM_MAIN_SUIT_COUNT(636)。 同步规格清单文档与两个测试文件里被钉死的精灵总数(387→382)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,8 @@
|
|||||||
// 按钮类资源一律只出 1 帧普通态,按下缩放/透明反馈由框架统一处理。
|
// 按钮类资源一律只出 1 帧普通态,按下缩放/透明反馈由框架统一处理。
|
||||||
//
|
//
|
||||||
// 以下键号在源清单中被显式判定「不需要」,本文件不占用,留空号以便追溯:
|
// 以下键号在源清单中被显式判定「不需要」,本文件不占用,留空号以便追溯:
|
||||||
|
// 512 SUIT_ICON_L —— 选主面板花色图标已并入 BTN_SUIT_CHOOSE 帧1–4(美术改一张图出,2026-08-26)
|
||||||
|
// 534 BTN_SURRENDER —— 投降按钮已并入 BTN_SUIT_CHOOSE 帧5(美术改一张图出,2026-08-26)
|
||||||
// 539 BTN_READY —— 准备标识用平台自带的(清单 §0.2)
|
// 539 BTN_READY —— 准备标识用平台自带的(清单 §0.2)
|
||||||
// 652 TXT_BAOZHU —— 报无主不做全场提示(D-4),只让他家 主N/对N 角标出现
|
// 652 TXT_BAOZHU —— 报无主不做全场提示(D-4),只让他家 主N/对N 角标出现
|
||||||
// 655 PANEL_BOTTOM_3S —— 底牌 3 秒展示复用庄家翻底牌 UI(D-2),仅可见范围不同
|
// 655 PANEL_BOTTOM_3S —— 底牌 3 秒展示复用庄家翻底牌 UI(D-2),仅可见范围不同
|
||||||
@@ -45,12 +47,6 @@ var EQW_Images = EQW_Images || {
|
|||||||
//尺寸:30×30
|
//尺寸:30×30
|
||||||
SUIT_ICON_S: 511,
|
SUIT_ICON_S: 511,
|
||||||
|
|
||||||
//用途:选主面板花色按钮上的花色图标
|
|
||||||
//帧数:4
|
|
||||||
//帧说明:帧1=方块♦ 帧2=梅花♣ 帧3=红心♥ 帧4=黑桃♠(按服务端 flower 编号 1–4 排序,同 SUIT_ICON_S)
|
|
||||||
//尺寸:46×46
|
|
||||||
SUIT_ICON_L: 512,
|
|
||||||
|
|
||||||
//===================== §3.3 按钮 =====================
|
//===================== §3.3 按钮 =====================
|
||||||
|
|
||||||
//用途:叫分档位按钮底 + 右上角角标底(同一张图,不含文字)
|
//用途:叫分档位按钮底 + 右上角角标底(同一张图,不含文字)
|
||||||
@@ -66,18 +62,14 @@ var EQW_Images = EQW_Images || {
|
|||||||
//尺寸:184×57
|
//尺寸:184×57
|
||||||
BTN_NO_CALL: 532,
|
BTN_NO_CALL: 532,
|
||||||
|
|
||||||
//用途:选主花色按钮底
|
//用途:选主 / 投降面板按钮(花色按钮 + 投降按钮,一张图 5 帧)
|
||||||
//帧数:1
|
//帧数:5
|
||||||
//帧说明:金黄底
|
//帧说明:帧1–4=四个花色按钮,每帧已包含「按钮底 + 花色图标 + 右上角蓝色角标底」,
|
||||||
|
// 花色序按服务端 flower 编号——帧1=方块♦ 帧2=梅花♣ 帧3=红心♥ 帧4=黑桃♠;
|
||||||
|
// 帧5=投降按钮,已包含「按钮底 + 投降二字」
|
||||||
//尺寸:128×55
|
//尺寸:128×55
|
||||||
BTN_SUIT_CHOOSE: 533,
|
BTN_SUIT_CHOOSE: 533,
|
||||||
|
|
||||||
//用途:「投降」按钮
|
|
||||||
//帧数:1
|
|
||||||
//帧说明:金黄底
|
|
||||||
//尺寸:128×55
|
|
||||||
BTN_SURRENDER: 534,
|
|
||||||
|
|
||||||
//用途:「提示」按钮
|
//用途:「提示」按钮
|
||||||
//帧数:1
|
//帧数:1
|
||||||
//帧说明:蓝色渐变
|
//帧说明:蓝色渐变
|
||||||
@@ -319,6 +311,12 @@ var EQW_Images = EQW_Images || {
|
|||||||
//尺寸:30×40
|
//尺寸:30×40
|
||||||
NUM_CALL_SCORE: 635,
|
NUM_CALL_SCORE: 635,
|
||||||
|
|
||||||
|
//用途:选主面板花色张数数字(美术单独出图,字号配色与以上几套不同;十位/个位各占一个精灵,见 Sprites_Action.js)
|
||||||
|
//帧数:10
|
||||||
|
//帧说明:帧1–10 = 0–9
|
||||||
|
//尺寸:24×32(估值,与选主按钮 128×55 协调估算,出图前须与最终设计稿核对)
|
||||||
|
NUM_MAIN_SUIT_COUNT: 636,
|
||||||
|
|
||||||
//===================== §3.7 浮层与气泡 =====================
|
//===================== §3.7 浮层与气泡 =====================
|
||||||
|
|
||||||
//用途:「踩」/「没分」/「有分」提示气泡
|
//用途:「踩」/「没分」/「有分」提示气泡
|
||||||
|
|||||||
@@ -49,20 +49,20 @@ EQW_Layout.MAIN_SUIT_LINE = {
|
|||||||
itemWidth: 128, itemHeight: 55, spacing: 9, anchor: 'left'
|
itemWidth: 128, itemHeight: 55, spacing: 9, anchor: 'left'
|
||||||
};
|
};
|
||||||
|
|
||||||
//花色图标:贴对应花色按钮左侧(资源 SUIT_ICON_L 46×46)。target 由调用方按花色序号注入
|
//张数数字(十位):贴对应花色按钮下方偏左,资源 NUM_MAIN_SUIT_COUNT 24×32(十位为 0 时该精灵隐藏,调用方注入 target)
|
||||||
EQW_Layout.MAIN_SUIT_ICON = {
|
EQW_Layout.MAIN_SUIT_COUNT_TENS = {
|
||||||
kind: 'attach', targetKind: 'sprite', hAlign: 'left', vAlign: 'middle', offsetX: 14, w: 46, h: 46,
|
kind: 'attach', targetKind: 'sprite', hAlign: 'center', vAlign: 'bottom', offsetX: -12, offsetY: -6, w: 24, h: 32,
|
||||||
runtime: ['target']
|
runtime: ['target']
|
||||||
};
|
};
|
||||||
|
|
||||||
//张数大字:贴对应花色按钮居中,纯文字,清单未给宽高(调用方注入 target)
|
//张数数字(个位):贴对应花色按钮下方偏右,紧邻十位,资源 NUM_MAIN_SUIT_COUNT 24×32(调用方注入 target)
|
||||||
EQW_Layout.MAIN_SUIT_COUNT_TEXT = {
|
EQW_Layout.MAIN_SUIT_COUNT_ONES = {
|
||||||
kind: 'attach', targetKind: 'sprite', hAlign: 'center', vAlign: 'middle', offsetX: 14,
|
kind: 'attach', targetKind: 'sprite', hAlign: 'center', vAlign: 'bottom', offsetX: 12, offsetY: -6, w: 24, h: 32,
|
||||||
runtime: ['target', 'w', 'h']
|
runtime: ['target']
|
||||||
};
|
};
|
||||||
|
|
||||||
//对数角标底:贴对应花色按钮右上角(资源 BADGE_MULTIPLE 帧1 34×18)。
|
//对数角标文字:贴对应花色按钮右上角(按钮帧内已含角标底,本节点只定位叠加的文字)。
|
||||||
//角标文字复用同一矩形,不单独配置(调用方注入 target)
|
//清单未给宽高(调用方注入 target)
|
||||||
EQW_Layout.MAIN_SUIT_PAIR_BADGE = {
|
EQW_Layout.MAIN_SUIT_PAIR_BADGE = {
|
||||||
kind: 'attach', targetKind: 'sprite', corner: 'topRight', offsetX: -36, offsetY: 2, w: 34, h: 18,
|
kind: 'attach', targetKind: 'sprite', corner: 'topRight', offsetX: -36, offsetY: 2, w: 34, h: 18,
|
||||||
runtime: ['target']
|
runtime: ['target']
|
||||||
|
|||||||
@@ -74,6 +74,13 @@ EQW_Sprites.CallPanelView = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//选主/投降面板:4 花色按钮 + 投降按钮(清单 §5.4,Layer 104 群组 221)
|
//选主/投降面板:4 花色按钮 + 投降按钮(清单 §5.4,Layer 104 群组 221)
|
||||||
|
//
|
||||||
|
//以下键号在源清单中被显式判定「不需要」,本文件不占用,留空号以便追溯(美术改一张图 5 帧出图,
|
||||||
|
//花色图标与右上角角标底已并入 BTN_SUIT_CHOOSE 各帧,2026-08-26):
|
||||||
|
// 1656–1659 MAIN_SUIT_ICON_1..4 —— 花色图标并入 BTN_SUIT_CHOOSE 帧1–4
|
||||||
|
// 1660–1663 MAIN_SUIT_COUNT_1..4 —— 原文字精灵,改为下方 8 个数字图片精灵(张数最多两位)
|
||||||
|
// 1664–1667 MAIN_SUIT_PAIR_BG_1..4 —— 角标底并入 BTN_SUIT_CHOOSE 帧1–4
|
||||||
|
// 1673 MAIN_BTN_SURRENDER_TEXT —— 「投降」二字并入 BTN_SUIT_CHOOSE 帧5
|
||||||
EQW_Sprites.ChooseMainView = {
|
EQW_Sprites.ChooseMainView = {
|
||||||
Layer: EQW_Layers.ACTION, //104
|
Layer: EQW_Layers.ACTION, //104
|
||||||
|
|
||||||
@@ -83,38 +90,31 @@ EQW_Sprites.ChooseMainView = {
|
|||||||
MAIN_TITLE_BG: 1650, //图片:「亮主」斜角条,资源 EQW_Images.BAR_CHOOSE_MAIN
|
MAIN_TITLE_BG: 1650, //图片:「亮主」斜角条,资源 EQW_Images.BAR_CHOOSE_MAIN
|
||||||
MAIN_TITLE_TEXT: 1651, //文字:「亮主」
|
MAIN_TITLE_TEXT: 1651, //文字:「亮主」
|
||||||
|
|
||||||
//—— 4 个花色按钮底,资源 EQW_Images.BTN_SUIT_CHOOSE ——
|
//—— 4 个花色按钮,资源 EQW_Images.BTN_SUIT_CHOOSE,帧 = 花色序号 1–4(服务端 flower 编号),
|
||||||
|
// 该帧已含「按钮底 + 花色图标 + 右上角蓝色角标底」——
|
||||||
MAIN_SUIT_BTN_1: 1652,
|
MAIN_SUIT_BTN_1: 1652,
|
||||||
MAIN_SUIT_BTN_2: 1653,
|
MAIN_SUIT_BTN_2: 1653,
|
||||||
MAIN_SUIT_BTN_3: 1654,
|
MAIN_SUIT_BTN_3: 1654,
|
||||||
MAIN_SUIT_BTN_4: 1655,
|
MAIN_SUIT_BTN_4: 1655,
|
||||||
|
|
||||||
//—— 4 个花色图标,资源 EQW_Images.SUIT_ICON_L,帧固定 = 位置序号(1方块 2梅花 3红心 4黑桃,与 TOP_SUIT_ICON 花色序一致) ——
|
//—— 4 个对数角标文字:「N对」,叠在对应花色按钮的角标底之上 ——
|
||||||
MAIN_SUIT_ICON_1: 1656,
|
|
||||||
MAIN_SUIT_ICON_2: 1657,
|
|
||||||
MAIN_SUIT_ICON_3: 1658,
|
|
||||||
MAIN_SUIT_ICON_4: 1659,
|
|
||||||
|
|
||||||
//—— 4 个花色张数文字:该花色在庄家手中的张数 ——
|
|
||||||
MAIN_SUIT_COUNT_1: 1660,
|
|
||||||
MAIN_SUIT_COUNT_2: 1661,
|
|
||||||
MAIN_SUIT_COUNT_3: 1662,
|
|
||||||
MAIN_SUIT_COUNT_4: 1663,
|
|
||||||
|
|
||||||
//—— 4 个对数角标底,资源 EQW_Images.BADGE_MULTIPLE 帧1(蓝底) ——
|
|
||||||
MAIN_SUIT_PAIR_BG_1: 1664,
|
|
||||||
MAIN_SUIT_PAIR_BG_2: 1665,
|
|
||||||
MAIN_SUIT_PAIR_BG_3: 1666,
|
|
||||||
MAIN_SUIT_PAIR_BG_4: 1667,
|
|
||||||
|
|
||||||
//—— 4 个对数角标文字:「N对」——
|
|
||||||
MAIN_SUIT_PAIR_TEXT_1: 1668,
|
MAIN_SUIT_PAIR_TEXT_1: 1668,
|
||||||
MAIN_SUIT_PAIR_TEXT_2: 1669,
|
MAIN_SUIT_PAIR_TEXT_2: 1669,
|
||||||
MAIN_SUIT_PAIR_TEXT_3: 1670,
|
MAIN_SUIT_PAIR_TEXT_3: 1670,
|
||||||
MAIN_SUIT_PAIR_TEXT_4: 1671,
|
MAIN_SUIT_PAIR_TEXT_4: 1671,
|
||||||
|
|
||||||
MAIN_BTN_SURRENDER: 1672, //图片:「投降」按钮,资源 EQW_Images.BTN_SURRENDER
|
//—— 8 个花色张数数字图片精灵:该花色在庄家手中的张数(两副牌单花色最多 26 张,两位数),
|
||||||
MAIN_BTN_SURRENDER_TEXT: 1673 //文字:按钮文案「投降」
|
// 资源 EQW_Images.NUM_MAIN_SUIT_COUNT,帧 = 数字+1(帧1–10=0–9),十位为 0 时该精灵隐藏、个位始终显示 ——
|
||||||
|
MAIN_SUIT_COUNT_1_TENS: 1674,
|
||||||
|
MAIN_SUIT_COUNT_1_ONES: 1675,
|
||||||
|
MAIN_SUIT_COUNT_2_TENS: 1676,
|
||||||
|
MAIN_SUIT_COUNT_2_ONES: 1677,
|
||||||
|
MAIN_SUIT_COUNT_3_TENS: 1678,
|
||||||
|
MAIN_SUIT_COUNT_3_ONES: 1679,
|
||||||
|
MAIN_SUIT_COUNT_4_TENS: 1680,
|
||||||
|
MAIN_SUIT_COUNT_4_ONES: 1681,
|
||||||
|
|
||||||
|
MAIN_BTN_SURRENDER: 1672 //图片:「投降」按钮,资源 EQW_Images.BTN_SUIT_CHOOSE 帧5(已含底与「投降」字)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const index = EQW_SpriteIndex.build(EQW_Sprites);
|
|||||||
const spriteVals = Object.keys(index).map(k => index[k]);
|
const spriteVals = Object.keys(index).map(k => index[k]);
|
||||||
// 钉住精确数量:松下界(如 >200)删掉整个 View 都还能通过。
|
// 钉住精确数量:松下界(如 >200)删掉整个 View 都还能通过。
|
||||||
// 增删精灵时连同本数字一起改——有意的顺手更新,不是有意的就红给你看
|
// 增删精灵时连同本数字一起改——有意的顺手更新,不是有意的就红给你看
|
||||||
t.eq('精灵总数', spriteVals.length, 387);
|
t.eq('精灵总数', spriteVals.length, 382);
|
||||||
const spriteOk = spriteVals.every(v => v >= 1001 && v <= 2999);
|
const spriteOk = spriteVals.every(v => v >= 1001 && v <= 2999);
|
||||||
if (!spriteOk) { console.log('越界精灵: ' + JSON.stringify(spriteVals.filter(v => v < 1001 || v > 2999))); }
|
if (!spriteOk) { console.log('越界精灵: ' + JSON.stringify(spriteVals.filter(v => v < 1001 || v > 2999))); }
|
||||||
t.eq('精灵落在 1001-2999', spriteOk, true);
|
t.eq('精灵落在 1001-2999', spriteOk, true);
|
||||||
|
|||||||
@@ -83,6 +83,6 @@ let realIndex = {};
|
|||||||
try { realIndex = EQW_SpriteIndex.build(EQW_Sprites); } catch (e) { realOk = false; console.log('建索引失败: ' + e.message); }
|
try { realIndex = EQW_SpriteIndex.build(EQW_Sprites); } catch (e) { realOk = false; console.log('建索引失败: ' + e.message); }
|
||||||
t.eq('真实精灵常量无重复键', realOk, true);
|
t.eq('真实精灵常量无重复键', realOk, true);
|
||||||
// 钉住精确数量(与 test_constants.js 同一个数):松下界删掉整个 View 都还能通过
|
// 钉住精确数量(与 test_constants.js 同一个数):松下界删掉整个 View 都还能通过
|
||||||
t.eq('真实精灵数量', Object.keys(realIndex).length, 387);
|
t.eq('真实精灵数量', Object.keys(realIndex).length, 382);
|
||||||
|
|
||||||
process.exit(t.done('spriteindex') ? 0 : 1);
|
process.exit(t.done('spriteindex') ? 0 : 1);
|
||||||
|
|||||||
+24
-20
@@ -579,12 +579,14 @@ EQW_RoomOptions = {
|
|||||||
|
|
||||||
**选主面板规格**(群组 221,号段 1650–1699):
|
**选主面板规格**(群组 221,号段 1650–1699):
|
||||||
|
|
||||||
|
> **2026-08-26 修订**:美术侧实际出图方式与原规格不符——花色按钮改为**一张图 5 帧**(帧1–4=四花色按钮,每帧已含按钮底+花色图标+右上角蓝色角标底;帧5=投降按钮,已含按钮底+「投降」字),花色图标、角标底、投降文字不再单独出精灵。按此改写以下条目,代码同步见 `ImageResources.js`/`Sprites_Action.js`/`Layout_Action.js`。
|
||||||
|
|
||||||
- 标题斜角条:`亮主` 金色字 + 倒计时数字。
|
- 标题斜角条:`亮主` 金色字 + 倒计时数字。
|
||||||
- **4 个花色按钮**,每个含 4 个精灵:按钮底 + 花色大图标 + **中央大数字** + **右上角蓝色角标**。
|
- **4 个花色按钮**:每个按钮由**一个精灵**呈现,帧 = 花色序号 1–4(服务端 flower 编号),该帧已含「按钮底 + 花色图标 + 右上角蓝色角标底」;角标底之上叠加一个**对数文字精灵**(`N对`)。
|
||||||
- 中央大数字 = 该花色在庄家 36 张手牌中的**总张数**
|
- 按钮下方叠加**张数数字图片精灵**:该花色在庄家手中的**总张数**——两副牌单花色最多 26 张(两位数),故每个花色用**十位 + 个位两个数字图片精灵**(十位为 0 时隐藏),资源见 §3.6 新增的 `NUM_MAIN_SUIT_COUNT`
|
||||||
- 右上角标 = 该花色的**对子数**(design §4/§11 明确要求)
|
- 右上角标文字 = 该花色的**对子数**(design §4/§11 明确要求)
|
||||||
- **两个数字都由前端据 `MyCards`/`cards` 自行统计**,协议 §「ChooseMain」明确「服务端不额外下发」。
|
- **张数与对子数都由前端据 `MyCards`/`cards` 自行统计**,协议 §「ChooseMain」明确「服务端不额外下发」。
|
||||||
- **投降按钮**:仅 `touxiang === 1`(即叫分 70)时显示,与 4 个花色按钮并列。
|
- **投降按钮**:仅 `touxiang === 1`(即叫分 70)时显示,与 4 个花色按钮并列;按钮为**一个精灵**(`BTN_SUIT_CHOOSE` 帧5,已含底与「投降」字),不再单独出文字精灵。
|
||||||
- 交互:点花色 → `xuanzhu { seat, flower }`(flower:1方块 2梅花 3红心 4黑桃);点投降 → `touxiang { seat }`。
|
- 交互:点花色 → `xuanzhu { seat, flower }`(flower:1方块 2梅花 3红心 4黑桃);点投降 → `touxiang { seat }`。
|
||||||
- **投降的后果**:直接跳到结算(§1.8),**不选主、不埋牌、不出牌**。
|
- **投降的后果**:直接跳到结算(§1.8),**不选主、不埋牌、不出牌**。
|
||||||
|
|
||||||
@@ -1106,7 +1108,7 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
|
|||||||
| ID | 键名 | 用途 | 帧数 | 帧说明 | 尺寸 |
|
| ID | 键名 | 用途 | 帧数 | 帧说明 | 尺寸 |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- |
|
||||||
| 511 | `SUIT_ICON_S` | 顶部信息条 `主` 列 | 4 | 帧1=方块♦ 帧2=梅花♣ 帧3=红心♥ 帧4=黑桃♠(**按服务端 flower 编号 1–4 排序**) | 30 × 30 |
|
| 511 | `SUIT_ICON_S` | 顶部信息条 `主` 列 | 4 | 帧1=方块♦ 帧2=梅花♣ 帧3=红心♥ 帧4=黑桃♠(**按服务端 flower 编号 1–4 排序**) | 30 × 30 |
|
||||||
| 512 | `SUIT_ICON_L` | 选主面板花色按钮 | 4 | 同上排序 | 46 × 46 |
|
| ~~512~~ | ~~`SUIT_ICON_L`~~ | **不需要**:选主面板花色图标已并入 `BTN_SUIT_CHOOSE` 帧1–4(2026-08-26,美术改一张图 5 帧出图) | —— | —— | —— |
|
||||||
|
|
||||||
> ⚠️ 花色图标的帧序按**服务端 flower 编号**(1方块 2梅花 3红心 4黑桃),与牌面资源的花色顺序**不同**。两者互不换算,各自独立。
|
> ⚠️ 花色图标的帧序按**服务端 flower 编号**(1方块 2梅花 3红心 4黑桃),与牌面资源的花色顺序**不同**。两者互不换算,各自独立。
|
||||||
|
|
||||||
@@ -1116,8 +1118,8 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
|
|||||||
| --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- |
|
||||||
| 531 | `BTN_CALL_SCORE` | 叫分档位按钮底 **+ 右上角角标底(同一张图,不含文字)** | **4** | 帧1=浅黄+蓝角标(70/65/60/55) 帧2=金黄+绿角标(50/45/40) 帧3=橙+深橙角标(35…5) 帧4=**灰**(已叫过/不可选)。**颜色按档位位置固定,只因不可叫变灰** | 74 × 56 |
|
| 531 | `BTN_CALL_SCORE` | 叫分档位按钮底 **+ 右上角角标底(同一张图,不含文字)** | **4** | 帧1=浅黄+蓝角标(70/65/60/55) 帧2=金黄+绿角标(50/45/40) 帧3=橙+深橙角标(35…5) 帧4=**灰**(已叫过/不可选)。**颜色按档位位置固定,只因不可叫变灰** | 74 × 56 |
|
||||||
| 532 | `BTN_NO_CALL` | `不叫` | 1 | 蓝色渐变 | 184 × 57 |
|
| 532 | `BTN_NO_CALL` | `不叫` | 1 | 蓝色渐变 | 184 × 57 |
|
||||||
| 533 | `BTN_SUIT_CHOOSE` | 选主花色按钮底 | 1 | 金黄底 | 128 × 55 |
|
| 533 | `BTN_SUIT_CHOOSE` | **选主 / 投降面板按钮**(花色按钮 + 投降按钮,一张图 5 帧) | **5** | **帧1–4=四花色按钮,每帧已含「按钮底 + 花色图标 + 右上角蓝色角标底」,花色序按服务端 flower 编号(帧1=方块♦ 帧2=梅花♣ 帧3=红心♥ 帧4=黑桃♠);帧5=投降按钮,已含「按钮底 + 投降二字」**(2026-08-26 修订:原为按钮底单帧,花色图标/角标底/投降文字各自单独出精灵;美术侧实际按一张图 5 帧出图,改按此表) | 128 × 55 |
|
||||||
| 534 | `BTN_SURRENDER` | `投降` | 1 | 金黄底 | 128 × 55 |
|
| ~~534~~ | ~~`BTN_SURRENDER`~~ | **不需要**:投降按钮已并入 `BTN_SUIT_CHOOSE` 帧5(2026-08-26) | —— | —— | —— |
|
||||||
| 535 | `BTN_TIP` | `提示` | 1 | 蓝色渐变 | 180 × 63 |
|
| 535 | `BTN_TIP` | `提示` | 1 | 蓝色渐变 | 180 × 63 |
|
||||||
| 536 | `BTN_BURY` | `埋牌 (N/8)` | 2 | 帧1=可提交(金黄) 帧2=置灰(未满 8 张) | 180 × 63 |
|
| 536 | `BTN_BURY` | `埋牌 (N/8)` | 2 | 帧1=可提交(金黄) 帧2=置灰(未满 8 张) | 180 × 63 |
|
||||||
| 537 | `BTN_PLAY` | `出牌` | 2 | 帧1=可出 帧2=置灰 | 157 × 55 |
|
| 537 | `BTN_PLAY` | `出牌` | 2 | 帧1=可出 帧2=置灰 | 157 × 55 |
|
||||||
@@ -1173,9 +1175,11 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
|
|||||||
| 632 | `NUM_RESULT_WIN` | 结算得分数字(赢,橙) | 12 | 帧1–10 = 0–9,帧11 = `+`,帧12 = `-` | 46 × 62 |
|
| 632 | `NUM_RESULT_WIN` | 结算得分数字(赢,橙) | 12 | 帧1–10 = 0–9,帧11 = `+`,帧12 = `-` | 46 × 62 |
|
||||||
| 633 | `NUM_RESULT_LOSE` | 结算得分数字(输,蓝) | 12 | 同上 | 46 × 62 |
|
| 633 | `NUM_RESULT_LOSE` | 结算得分数字(输,蓝) | 12 | 同上 | 46 × 62 |
|
||||||
| 634 | `ANI_JUDGE` | **判定结果动画**(大光 / 小光 / 过庄 / 升N级 / 投降)——帧动画资源,播放参数进 `AnimationConfigs`【待设计 D-8】 | 待定 | 待定 | 待定 |
|
| 634 | `ANI_JUDGE` | **判定结果动画**(大光 / 小光 / 过庄 / 升N级 / 投降)——帧动画资源,播放参数进 `AnimationConfigs`【待设计 D-8】 | 待定 | 待定 | 待定 |
|
||||||
|
| 636 | `NUM_MAIN_SUIT_COUNT` | **选主面板花色张数数字**(美术单独出图,字号配色与以上几套不同;十位/个位各占一个精灵) | 10 | 帧1–10 = 0–9 | 24 × 32(估值) |
|
||||||
|
|
||||||
> **带描边/渐变的美术字用图片多帧精灵**(倒计时、结算得分、叫分分数),文字精灵做不出这种效果——631–635 都要出图。
|
> **带描边/渐变的美术字用图片多帧精灵**(倒计时、结算得分、叫分分数、选主张数),文字精灵做不出这种效果——631–636 都要出图。
|
||||||
> **纯数据型小字用文字精灵**(`SpriteManager.setText`):叫分角标的子数(值域 2–15,随爬坡开关变)、`主N`/`对N` 角标、局数、亮牌统计等。
|
> **纯数据型小字用文字精灵**(`SpriteManager.setText`):叫分角标的子数(值域 2–15,随爬坡开关变)、`主N`/`对N` 角标、局数、亮牌统计等。
|
||||||
|
> **2026-08-26 新增 636**:选主张数原计划走文字精灵,但美术侧单独出了一套数字图(字号配色不同于既有几套),且张数最多两位(两副牌单花色最多 26 张),故改为图片数字精灵、十位个位各一个。
|
||||||
|
|
||||||
### 3.7 浮层与气泡
|
### 3.7 浮层与气泡
|
||||||
|
|
||||||
@@ -1308,15 +1312,13 @@ design 与协议均**未定义任何音效**。以下是按牌类游戏常规推
|
|||||||
| | 1631–1644 | `CALL_BTN_BADGE_1..14` | **文字** ×14 | 该档 `multiple` 子数(`2子`…`15子`),随爬坡开关变 | —— |
|
| | 1631–1644 | `CALL_BTN_BADGE_1..14` | **文字** ×14 | 该档 `multiple` 子数(`2子`…`15子`),随爬坡开关变 | —— |
|
||||||
| | 1645 | `CALL_BTN_NONE` | 图片 | `不叫` | `BTN_NO_CALL` |
|
| | 1645 | `CALL_BTN_NONE` | 图片 | `不叫` | `BTN_NO_CALL` |
|
||||||
| | 1646 | `CALL_BTN_NONE_TEXT` | 文字 | —— | —— |
|
| | 1646 | `CALL_BTN_NONE_TEXT` | 文字 | —— | —— |
|
||||||
| **221** 选主面板 | 1650 | `MAIN_TITLE_BG` | 图片 | `亮主` 斜角条 | `BAR_CHOOSE_MAIN` |
|
| **221** 选主面板(2026-08-26 修订:美术改一张图 5 帧出图,花色图标/角标底/投降文字并入按钮帧,见 §1.5/§3.3) | 1650 | `MAIN_TITLE_BG` | 图片 | `亮主` 斜角条 | `BAR_CHOOSE_MAIN` |
|
||||||
| | 1651 | `MAIN_TITLE_TEXT` | 文字 | `亮主` | —— |
|
| | 1651 | `MAIN_TITLE_TEXT` | 文字 | `亮主` | —— |
|
||||||
| | 1652–1655 | `MAIN_SUIT_BTN_1..4` | 图片 ×4 | 花色按钮底 | `BTN_SUIT_CHOOSE` |
|
| | 1652–1655 | `MAIN_SUIT_BTN_1..4` | 图片 ×4 | 花色按钮(**已含按钮底+花色图标+角标底**),帧=花色序1–4 | `BTN_SUIT_CHOOSE` 帧1–4 |
|
||||||
| | 1656–1659 | `MAIN_SUIT_ICON_1..4` | 图片 ×4 | 花色图标 | `SUIT_ICON_L` 帧1–4 |
|
| | 1668–1671 | `MAIN_SUIT_PAIR_TEXT_1..4` | 文字 ×4 | `N对`,叠在对应按钮角标底之上 | —— |
|
||||||
| | 1660–1663 | `MAIN_SUIT_COUNT_1..4` | 文字 ×4 | 该花色在庄家手中的**张数** | —— |
|
| | 1674–1681 | `MAIN_SUIT_COUNT_1..4_TENS/ONES` | **图片(数字精灵)** ×8 | 该花色在庄家手中的**张数**(两位数,十位/个位各一个精灵,十位为 0 隐藏) | `NUM_MAIN_SUIT_COUNT` |
|
||||||
| | 1664–1667 | `MAIN_SUIT_PAIR_BG_1..4` | 图片 ×4 | 对数角标底 | `BADGE_MULTIPLE` 帧1 |
|
| | 1672 | `MAIN_BTN_SURRENDER` | 图片 | `投降`(**已含按钮底+文字**) | `BTN_SUIT_CHOOSE` 帧5 |
|
||||||
| | 1668–1671 | `MAIN_SUIT_PAIR_TEXT_1..4` | 文字 ×4 | `N对` | —— |
|
| | ~~1656–1659 / 1660–1663 / 1664–1667 / 1673~~ | ~~`MAIN_SUIT_ICON_1..4` / 原 `MAIN_SUIT_COUNT_1..4` / `MAIN_SUIT_PAIR_BG_1..4` / `MAIN_BTN_SURRENDER_TEXT`~~ | —— | **不需要**:分别并入按钮帧或改为上方 8 个数字精灵,空出的 ID 不复用 | —— |
|
||||||
| | 1672 | `MAIN_BTN_SURRENDER` | 图片 | `投降` | `BTN_SURRENDER` |
|
|
||||||
| | 1673 | `MAIN_BTN_SURRENDER_TEXT` | 文字 | —— | —— |
|
|
||||||
| **222** 埋牌操作条 | 1700 | `BURY_BTN_TIP` | 图片 | `提示` | `BTN_TIP` |
|
| **222** 埋牌操作条 | 1700 | `BURY_BTN_TIP` | 图片 | `提示` | `BTN_TIP` |
|
||||||
| | 1701 | `BURY_BTN_TIP_TEXT` | 文字 | —— | —— |
|
| | 1701 | `BURY_BTN_TIP_TEXT` | 文字 | —— | —— |
|
||||||
| | 1702 | `BURY_BTN_SUBMIT` | 图片 | `埋牌` | `BTN_BURY` 帧1可提交/帧2灰 |
|
| | 1702 | `BURY_BTN_SUBMIT` | 图片 | `埋牌` | `BTN_BURY` 帧1可提交/帧2灰 |
|
||||||
@@ -1699,6 +1701,8 @@ CARD_SIZE: {
|
|||||||
|
|
||||||
### 6.8 阶段操作区配置
|
### 6.8 阶段操作区配置
|
||||||
|
|
||||||
|
> **2026-08-26 修订**:选主面板花色图标、对数角标底已并入按钮帧(见 §1.5/§3.3),对应布局节点删除;花色张数改为十位/个位两个数字精灵,布局节点相应改写。
|
||||||
|
|
||||||
| 部件 | kind | 参数(实测估值) |
|
| 部件 | kind | 参数(实测估值) |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| 叫分 · 面板底 | `point` | `x:355 y:140 w:575 h:170` |
|
| 叫分 · 面板底 | `point` | `x:355 y:140 w:575 h:170` |
|
||||||
@@ -1710,9 +1714,9 @@ CARD_SIZE: {
|
|||||||
| 叫分 · 自己叫分大字 | `point` | `x:570 y:320 w:140 h:70`,`textStyle{fontSize:52, align:center}` |
|
| 叫分 · 自己叫分大字 | `point` | `x:570 y:320 w:140 h:70`,`textStyle{fontSize:52, align:center}` |
|
||||||
| 选主 · 标题斜角条 | `point` | `x:330 y:315 w:425 h:50` |
|
| 选主 · 标题斜角条 | `point` | `x:330 y:315 w:425 h:50` |
|
||||||
| **选主 · 4 花色 + 投降** | `line` | `direction:horizontal anchorX:330 anchorY:373 itemWidth:128 itemHeight:55 spacing:9 anchor:left`(共 5 项;投降不显示时只排 4 项,`anchor:left` 保证前 4 个位置不变) |
|
| **选主 · 4 花色 + 投降** | `line` | `direction:horizontal anchorX:330 anchorY:373 itemWidth:128 itemHeight:55 spacing:9 anchor:left`(共 5 项;投降不显示时只排 4 项,`anchor:left` 保证前 4 个位置不变) |
|
||||||
| 选主 · 花色图标 | `attach` | `target:对应花色按钮, hAlign:left, vAlign:middle, offsetX:14` |
|
| 选主 · 张数(十位) | `attach` | `target:对应花色按钮, hAlign:center, vAlign:bottom, offsetX:-12, offsetY:-6, w:24, h:32`(十位为 0 时隐藏) |
|
||||||
| 选主 · 张数大字 | `attach` | `target:对应花色按钮, hAlign:center, vAlign:middle, offsetX:14` |
|
| 选主 · 张数(个位) | `attach` | `target:对应花色按钮, hAlign:center, vAlign:bottom, offsetX:12, offsetY:-6, w:24, h:32`(始终显示) |
|
||||||
| 选主 · 对数角标 | `attach` | `target:对应花色按钮, corner:topRight, offsetX:-36, offsetY:2` |
|
| 选主 · 对数角标文字 | `attach` | `target:对应花色按钮, corner:topRight, offsetX:-36, offsetY:2`(按钮帧内已含角标底,本节点只定位叠加文字) |
|
||||||
| 埋牌 · 操作条 | `line` + `items` | `direction:horizontal anchorX:640 anchorY:165 itemHeight:63 spacing:45 anchor:center`,`items:[180,60,180]`(提示 / 倒计时 / 埋牌) |
|
| 埋牌 · 操作条 | `line` + `items` | `direction:horizontal anchorX:640 anchorY:165 itemHeight:63 spacing:45 anchor:center`,`items:[180,60,180]`(提示 / 倒计时 / 埋牌) |
|
||||||
| 出牌 · 操作条 | `line` + `items` | `direction:horizontal anchorX:640 anchorY:345 itemHeight:55 spacing:35 anchor:center`,`items:[75,157]`(倒计时 / 出牌) |
|
| 出牌 · 操作条 | `line` + `items` | `direction:horizontal anchorX:640 anchorY:345 itemHeight:55 spacing:35 anchor:center`,`items:[75,157]`(倒计时 / 出牌) |
|
||||||
| 捡分飘字 | `point` | `x:570 y:180 w:170 h:55`;另配 `floatRise:-60`、`floatDuration:800`(动画参数也进配置) |
|
| 捡分飘字 | `point` | `x:570 y:180 w:170 h:55`;另配 `floatRise:-60`、`floatDuration:800`(动画参数也进配置) |
|
||||||
|
|||||||
Reference in New Issue
Block a user