二七王:选主面板按美术实际出图方式(一张图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:
2026-08-26 23:30:12 +08:00
co-authored by Claude Opus 5
parent be3e8d0837
commit b81e800f22
6 changed files with 70 additions and 68 deletions
+24 -20
View File
@@ -579,12 +579,14 @@ EQW_RoomOptions = {
**选主面板规格**(群组 221,号段 1650–1699):
> **2026-08-26 修订**:美术侧实际出图方式与原规格不符——花色按钮改为**一张图 5 帧**(帧1–4=四花色按钮,每帧已含按钮底+花色图标+右上角蓝色角标底;帧5=投降按钮,已含按钮底+「投降」字),花色图标、角标底、投降文字不再单独出精灵。按此改写以下条目,代码同步见 `ImageResources.js`/`Sprites_Action.js`/`Layout_Action.js`。
- 标题斜角条:`亮主` 金色字 + 倒计时数字。
- **4 个花色按钮**,每个含 4 个精灵:按钮底 + 花色大图标 + **中央大数字** + **右上角蓝色角标**。
- 中央大数字 = 该花色在庄家 36 张手牌中的**总张数**
- 右上角标 = 该花色的**对子数**(design §4/§11 明确要求)
- **两个数字都由前端据 `MyCards`/`cards` 自行统计**,协议 §「ChooseMain」明确「服务端不额外下发」。
- **投降按钮**:仅 `touxiang === 1`(即叫分 70)时显示,与 4 个花色按钮并列。
- **4 个花色按钮**:每个按钮由**一个精灵**呈现,帧 = 花色序号 1–4(服务端 flower 编号),该帧已含「按钮底 + 花色图标 + 右上角蓝色角标底」;角标底之上叠加一个**对数文字精灵**(`N对`)。
- 按钮下方叠加**张数数字图片精灵**:该花色在庄家手中的**总张数**——两副牌单花色最多 26 张(两位数),故每个花色用**十位 + 个位两个数字图片精灵**(十位为 0 时隐藏),资源见 §3.6 新增的 `NUM_MAIN_SUIT_COUNT`
- 右上角标文字 = 该花色的**对子数**(design §4/§11 明确要求)
- **张数与对子数都由前端据 `MyCards`/`cards` 自行统计**,协议 §「ChooseMain」明确「服务端不额外下发」。
- **投降按钮**:仅 `touxiang === 1`(即叫分 70)时显示,与 4 个花色按钮并列;按钮为**一个精灵**(`BTN_SUIT_CHOOSE` 帧5,已含底与「投降」字),不再单独出文字精灵。
- 交互:点花色 → `xuanzhu { seat, flower }`(flower:1方块 2梅花 3红心 4黑桃);点投降 → `touxiang { seat }`。
- **投降的后果**:直接跳到结算(§1.8),**不选主、不埋牌、不出牌**。
@@ -1106,7 +1108,7 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
| ID | 键名 | 用途 | 帧数 | 帧说明 | 尺寸 |
| --- | --- | --- | --- | --- | --- |
| 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黑桃),与牌面资源的花色顺序**不同**。两者互不换算,各自独立。
@@ -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 |
| 532 | `BTN_NO_CALL` | `不叫` | 1 | 蓝色渐变 | 184 × 57 |
| 533 | `BTN_SUIT_CHOOSE` | 选主花色按钮底 | 1 | 金黄底 | 128 × 55 |
| 534 | `BTN_SURRENDER` | `投降` | 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`~~ | **不需要**:投降按钮已并入 `BTN_SUIT_CHOOSE` 帧5(2026-08-26) | —— | —— | —— |
| 535 | `BTN_TIP` | `提示` | 1 | 蓝色渐变 | 180 × 63 |
| 536 | `BTN_BURY` | `埋牌 (N/8)` | 2 | 帧1=可提交(金黄) 帧2=置灰(未满 8 张) | 180 × 63 |
| 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 |
| 633 | `NUM_RESULT_LOSE` | 结算得分数字(输,蓝) | 12 | 同上 | 46 × 62 |
| 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` 角标、局数、亮牌统计等。
> **2026-08-26 新增 636**:选主张数原计划走文字精灵,但美术侧单独出了一套数字图(字号配色不同于既有几套),且张数最多两位(两副牌单花色最多 26 张),故改为图片数字精灵、十位个位各一个。
### 3.7 浮层与气泡
@@ -1308,15 +1312,13 @@ design 与协议均**未定义任何音效**。以下是按牌类游戏常规推
| | 1631–1644 | `CALL_BTN_BADGE_1..14` | **文字** ×14 | 该档 `multiple` 子数(`2子`…`15子`),随爬坡开关变 | —— |
| | 1645 | `CALL_BTN_NONE` | 图片 | `不叫` | `BTN_NO_CALL` |
| | 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` | 文字 | `亮主` | —— |
| | 1652–1655 | `MAIN_SUIT_BTN_1..4` | 图片 ×4 | 花色按钮底 | `BTN_SUIT_CHOOSE` |
| | 1656–1659 | `MAIN_SUIT_ICON_1..4` | 图片 ×4 | 花色图标 | `SUIT_ICON_L` 帧1–4 |
| | 1660–1663 | `MAIN_SUIT_COUNT_1..4` | 文字 ×4 | 该花色在庄家手中的**张数** | —— |
| | 1664–1667 | `MAIN_SUIT_PAIR_BG_1..4` | 图片 ×4 | 对数角标底 | `BADGE_MULTIPLE` 帧1 |
| | 1668–1671 | `MAIN_SUIT_PAIR_TEXT_1..4` | 文字 ×4 | `N对` | —— |
| | 1672 | `MAIN_BTN_SURRENDER` | 图片 | `投降` | `BTN_SURRENDER` |
| | 1673 | `MAIN_BTN_SURRENDER_TEXT` | 文字 | —— | —— |
| | 1652–1655 | `MAIN_SUIT_BTN_1..4` | 图片 ×4 | 花色按钮(**已含按钮底+花色图标+角标底**),帧=花色序1–4 | `BTN_SUIT_CHOOSE` 帧1–4 |
| | 1668–1671 | `MAIN_SUIT_PAIR_TEXT_1..4` | 文字 ×4 | `N对`,叠在对应按钮角标底之上 | —— |
| | 1674–1681 | `MAIN_SUIT_COUNT_1..4_TENS/ONES` | **图片(数字精灵)** ×8 | 该花色在庄家手中的**张数**(两位数,十位/个位各一个精灵,十位为 0 隐藏) | `NUM_MAIN_SUIT_COUNT` |
| | 1672 | `MAIN_BTN_SURRENDER` | 图片 | `投降`(**已含按钮底+文字**) | `BTN_SUIT_CHOOSE` 帧5 |
| | ~~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 不复用 | —— |
| **222** 埋牌操作条 | 1700 | `BURY_BTN_TIP` | 图片 | `提示` | `BTN_TIP` |
| | 1701 | `BURY_BTN_TIP_TEXT` | 文字 | —— | —— |
| | 1702 | `BURY_BTN_SUBMIT` | 图片 | `埋牌` | `BTN_BURY` 帧1可提交/帧2灰 |
@@ -1699,6 +1701,8 @@ CARD_SIZE: {
### 6.8 阶段操作区配置
> **2026-08-26 修订**:选主面板花色图标、对数角标底已并入按钮帧(见 §1.5/§3.3),对应布局节点删除;花色张数改为十位/个位两个数字精灵,布局节点相应改写。
| 部件 | kind | 参数(实测估值) |
| --- | --- | --- |
| 叫分 · 面板底 | `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: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 个位置不变) |
| 选主 · 花色图标 | `attach` | `target:对应花色按钮, hAlign:left, vAlign:middle, offsetX:14` |
| 选主 · 张数大字 | `attach` | `target:对应花色按钮, hAlign:center, vAlign:middle, offsetX:14` |
| 选主 · 对数角标 | `attach` | `target:对应花色按钮, corner:topRight, offsetX:-36, offsetY:2` |
| 选主 · 张数(十位) | `attach` | `target:对应花色按钮, hAlign:center, vAlign:bottom, offsetX:-12, offsetY:-6, w:24, h:32`(十位为 0 时隐藏) |
| 选主 · 张数(个位) | `attach` | `target:对应花色按钮, hAlign:center, vAlign:bottom, offsetX:12, offsetY:-6, w:24, h:32`(始终显示) |
| 选主 · 对数角标文字 | `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:345 itemHeight:55 spacing:35 anchor:center`,`items:[75,157]`(倒计时 / 出牌) |
| 捡分飘字 | `point` | `x:570 y:180 w:170 h:55`;另配 `floatRise:-60`、`floatDuration:800`(动画参数也进配置) |