二七王:Sprites_Result.js 补 5 个 View 的布局说明注释
为 AsetResultView / ChongGuanOverlayView / AccountView / HistoryView / MingPaiView 各补一块 JSDoc:分区标题标出 Layer 与 Group,正文含 ASCII 版式图 (小局结算三家光晕与底牌算式区、冲关叠加层三家牌位与遮罩、大局结算面板的 标题栏/玩家栏/规则栏/面板外按钮条、出牌历史与明牌的三排/两排版式), 另附元素说明、关闭方式对照、资源说明、精灵 ID 分配与 @see 出处。 纯注释改动,数据部分一字未动(精灵总数仍 378、布局节点仍 61)。 如实记下三处待补:判定结果动画 D-8 无设计稿;AccountView / HistoryView / MingPaiView 尚无 EQW_Layout 布局节点,图中坐标为参考图目视实测。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,92 @@
|
||||
// 连号精灵逐条写全,不用循环生成。
|
||||
var EQW_Sprites = EQW_Sprites || {};
|
||||
|
||||
// ============================================================================
|
||||
// 小局结算面板 - Layer 302 (POPUP_ASET_RESULT), Group 240 (ASET_RESULT)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* 小局结算面板 - AsetResultView
|
||||
*
|
||||
* 用途: 一小局打完后盖在牌桌之上,展示【埋牌底牌 + 扣底算式】与【三家得分】,
|
||||
* 并给出「冲关牌型」「下一局」两个出口。本面板没有整块面板底图——
|
||||
* 各元素直接摆在半透牌桌上(见参考图,牌桌仍隐约可见)。
|
||||
*
|
||||
* 布局说明(参考图 docs_dev/uiref/小局结算.png):
|
||||
*
|
||||
* ┌ 175,150 ─────────┐ ┌ 430,140 ────────────────┐ ┌ 865,150 ─────────┐
|
||||
* │ │ │ ┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐ │ │ │
|
||||
* │ +20 │ │ └┘└┘└┘└┘└┘└┘└┘└┘ ×8 │ │ -10 │
|
||||
* │ │ │ 叫分2子 底牌 20x0 │ │ │
|
||||
* └──────────────────┘ └─────────────────────────┘ └──────────────────┘
|
||||
* 牌局分 10 冲关分 10 牌局分 -5 冲关分 -5
|
||||
* ↑ ↑ ↑ ↑
|
||||
* RESULT_JF_LEFT RESULT_AW_LEFT RESULT_JF_RIGHT RESULT_AW_RIGHT
|
||||
* (1808) (1811) (1809) (1812)
|
||||
*
|
||||
* ┌ 490,340 ─────────┐
|
||||
* │ -10 │ ← RESULT_GLOW_SELF(1804) 光晕 225×100
|
||||
* └──────────────────┘ RESULT_SCORE_SELF(1807) 总分大字
|
||||
* 牌局分 -5 冲关分 -5 RESULT_JF_SELF(1810) / RESULT_AW_SELF(1813)
|
||||
*
|
||||
* ┌ 535,515 ────┐ ┌ 835,518 ───┐
|
||||
* │ 冲关牌型 │ │ 下一局 │
|
||||
* └─────────────┘ └────────────┘
|
||||
* ↑ RESULT_BTN_CG(1815) ↑ RESULT_BTN_NEXT(1817)
|
||||
* +_TEXT(1816) 183×63 +_TEXT(1818) 180×65
|
||||
*
|
||||
* 三家的位置与牌桌上各自的座位方位一致:左上家在左、右上家在右、自己在中央偏下。
|
||||
* 底牌区面板 RESULT_BOTTOM_PANEL(1800) = point(430,140,420×148),
|
||||
* 内含群组 215 的 8 张埋牌底牌(BuryCardsView,见 Sprites_Cards.js)与
|
||||
* RESULT_BOTTOM_TEXT(1801)(attach 面板 center/bottom, offsetY=-14)。
|
||||
*
|
||||
* 每家一组三个数字(EQW_Layout.RESULT_GLOW / RESULT_SCORE_NUM / RESULT_JF_TEXT /
|
||||
* RESULT_AW_TEXT,都用 bySeat 三变体):
|
||||
* ┌───── 光晕 225×100 ─────┐
|
||||
* │ +20 │ ← 总分大字:attach 光晕 center/middle
|
||||
* └────────────────────────┘
|
||||
* 牌局分 10 冲关分 10
|
||||
* ↑ attach 光晕 left/bottom ↑ attach 光晕 right/bottom
|
||||
* offset(-15,+24) offset(+15,+24)
|
||||
*
|
||||
* 元素说明:
|
||||
* - 光晕帧: GLOW_RESULT 帧1=赢(橙) / 帧2=输(蓝),按该家 grade 的正负取帧。
|
||||
* - 总分大字: 取 aset.seatlist[i].grade,正分橙带「+」、负分蓝带「-」;
|
||||
* 按符号在 NUM_RESULT_WIN / NUM_RESULT_LOSE 两套资源里二选一绑定,
|
||||
* 显示用 SpriteManager.setNumberImage(spriteId, '+20', charWidth)。
|
||||
* 与大局结算的 ACC_TPL_SCORE_NUM(1914) 同一套资源与用法,两处得分显示保持一致。
|
||||
* - 扣底文案: 格式「叫分{aset.multiple}子 底牌 {bottom.grade1}x{bottom.multiple}」——
|
||||
* x 后面是【扣底倍数】(单张 ×1、主对 ×2、N 连对 ×2N)。闲家未扣底时 bottom 只有 cards,
|
||||
* multiple/grade1/grade2 都不下发 → 倍数位显示 0(参考图的「底牌 20x0」即此情形)。
|
||||
* - 【标签文案与字段】参考图两个小字标签已定案为「牌局分」/「冲关分」(清单 §1.8):
|
||||
* 牌局分取 grade_jf(捡分子数得分)、冲关分取 grade_cg(算奖里的冲关分量,S-6 新增,
|
||||
* 开傍王时不含傍王那部分)。精灵键名沿用早期的 _JF / _AW,与文案不完全同名,勿混。
|
||||
* - 【判定结果不在本面板显示,D-8】大光/小光/过庄/升N级/投降由【动画】呈现,
|
||||
* 故 1814 RESULT_JUDGE_TEXT 被判定不需要(见下方空号说明)。动画在两个时机播:
|
||||
* 对局过程中 —— 依 curmultiple(随 chupai1/2/3 下发,带符号,S-8)档位跳变时提示
|
||||
* 结算前 —— 依 aset.upgrade(带符号:3大光 2小光 1过庄 -N升N级 -99投降 0解散)
|
||||
* 末轮打完、本面板出现【之前】播一次最终判定
|
||||
* 【待设计稿】动画资源 EQW_Images.ANI_JUDGE(634) 帧数/尺寸待定,
|
||||
* 播放参数在 EQW_Anim 里留白(AnimConstants.js 末尾「D-8 待补」)——本 View 无对应精灵。
|
||||
* - 【容错】投降结算只有 aset、无 chupai 无 bottom → 面板必须容忍底牌区缺失,
|
||||
* 不能因读不到 bottom.cards 就崩或显示空框。
|
||||
* - 【时序】先 setXxx 把结算数据写进 this.data、再播动画;动画的开始/结束/出错回调里
|
||||
* 只刷界面、不写核心数据。动画缺失或卡住时,面板与数据仍须正确。
|
||||
*
|
||||
* 资源说明:
|
||||
* - 底牌区面板底: EQW_Images.PANEL_BOTTOM_CARDS (606), 1 帧, 420×148
|
||||
* - 分数光晕: EQW_Images.GLOW_RESULT (607), 2 帧, 225×100, 帧1=赢(橙) 帧2=输(蓝)
|
||||
* - 得分数字: EQW_Images.NUM_RESULT_WIN (632) / NUM_RESULT_LOSE (633),
|
||||
* 各 16 帧固定帧序, 单字符 46×62, 整图 736×62;帧12=「+」帧13=「-」必出;
|
||||
* charWidth 取 EQW_Layout.NUM_STYLE.RESULT_WIN / RESULT_LOSE.charWidth
|
||||
* - 冲关牌型按钮: EQW_Images.BTN_CG_CARDS (542), 1 帧, 183×63, 蓝色渐变
|
||||
* - 下一局按钮: EQW_Images.BTN_NEXT_ASET (541), 1 帧, 180×65, 金黄渐变
|
||||
*
|
||||
* 精灵ID分配: 1800–1813 / 1815–1818(群组 240);埋牌底牌 8 张复用群组 215(1258–1265)
|
||||
*
|
||||
* @see docs_dev/二七王-UI资源与精灵清单.md §1.8 末轮扣底 + 小局结算 / §5.6 / §6.9
|
||||
* @see docs_dev/uiref/小局结算.png
|
||||
*/
|
||||
//小局结算面板(清单 §5.6,Layer 302 群组 240)
|
||||
//
|
||||
//以下键号在源清单中被显式判定「不需要」,本文件不占用,留空号以便追溯:
|
||||
@@ -52,6 +138,67 @@ EQW_Sprites.AsetResultView = {
|
||||
};
|
||||
//> 底牌 8 张精灵复用 Sprites_Cards.js 群组 215(BuryCardsView.BuryCards,1258–1265),不在此重复。
|
||||
|
||||
// ============================================================================
|
||||
// 冲关牌型叠加层 - Layer 302 (POPUP_ASET_RESULT), Group 244 (CHONGGUAN)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* 冲关牌型叠加层 - ChongGuanOverlayView
|
||||
*
|
||||
* 用途: 在小局结算面板【之上】再盖一层半透黑遮罩,三家各摊开自己参与冲关的牌
|
||||
* (aset.seatlist[i].cards),并在旁边标出奖数。点「冲关牌型」按钮打开。
|
||||
*
|
||||
* 布局说明(参考图 docs_dev/uiref/冲关牌型显示.png;牌的排布见
|
||||
* EQW_Layout.CHONGGUAN_FAN: fan/horizontal, anchor center,
|
||||
* 牌尺寸 CARD_SIZE.L 110×190, maxWidth=420, spacingMax=-40 spacingMin=-88):
|
||||
*
|
||||
* ┌──────────────────────────────────────────────────────────────┐ y=0
|
||||
* │ ┌──┬──┬──┬────┐ ┌──┬──┬──┬────┐ │
|
||||
* │ │K │K │K │ K │ │K │K │K │ K │ │ 260,120 / 1035,120
|
||||
* │ └──┴──┴──┴────┘ └──┴──┴──┴────┘ │
|
||||
* │ CG_BOX_LEFT(1821) CG_BOX_RIGHT(1822) │
|
||||
* │ CG_COUNT_LEFT(1825) CG_COUNT_RIGHT(1826)│
|
||||
* │ │
|
||||
* │ (半透黑遮罩 CG_MASK(1820) 铺满全屏) │
|
||||
* │ │
|
||||
* │ ┌──┬──┬──┬────┐ │
|
||||
* │ │K │K │K │ K │ ← CG_BOX_SELF(1823) 640,400│
|
||||
* │ └──┴──┴──┴────┘ CG_COUNT_SELF(1827) │
|
||||
* │ │
|
||||
* │ ┌────────────┐ │
|
||||
* │ │ 下一局 │ ← 遮罩之上│ 835,518
|
||||
* │ └────────────┘ 仍可见可点│
|
||||
* └──────────────────────────────────────────────────────────────┘ y=720
|
||||
*
|
||||
* 三家牌位与结算面板同方位:左上家、右上家在各自头像内侧,自己在中央偏下。
|
||||
* 遮罩 EQW_Layout.CG_MASK = point(0,0,1280×720, opacity 0.72)。
|
||||
*
|
||||
* 元素说明:
|
||||
* - 【牌用精灵复制,不预置固定张数】cards 长度不定——四王 + 一条长连对链 + 八个 7 +
|
||||
* 八个 2 叠加时可达 20 余张,预置既可能不够、又在多数局里白占 ID。
|
||||
* 编辑器里只需建 5 个精灵:3 个容器 + 1 个牌模板 + 1 个遮罩;奖数文字 3 个照常预置。
|
||||
* 生成方式见下方原注释与清单 §5.6a 的代码片段(SpriteCopyUtils.create + setFrame)。
|
||||
* - 【清理是硬要求】关闭叠加层 / 组件 onDestroy 时必须
|
||||
* SpriteCopyUtils.removeRange(boxId, 0, cards.length),否则复制精灵残留。
|
||||
* - 【关闭方式】遮罩本身就是关闭热区,点遮罩即关闭,不另设关闭按钮 →
|
||||
* CG_MASK 必须注册点击事件;同时 RESULT_BTN_NEXT(1817/1818) 的层内层级须【高于】遮罩,
|
||||
* 点它不被遮罩吃掉(「冲关牌型」按钮本身被遮住则无妨)。
|
||||
* ⚠ 三个遮罩面板的关闭方式各不相同,别写混:
|
||||
* 冲关牌型(本 View)→ 点遮罩关闭 遮罩可点
|
||||
* 明牌 / 出牌历史 → 点遮罩关闭,明牌另可再点按钮切换 遮罩可点
|
||||
* 亮牌 → 仅自动时长,到点自动收起 遮罩【不】注册点击
|
||||
* - 奖数取 aset.seatlist[i].naward(该家总奖数,支付基数);chongguan / wang 可作明细选展。
|
||||
* 前端【不重算冲关】,一律直接取服务端下发值。
|
||||
*
|
||||
* 资源说明:
|
||||
* - 遮罩: EQW_Images.MASK_DIM (609), 1 帧, 纯色可拉伸(出 1 张小图即可,拉伸满 1280×720)
|
||||
* - 牌模板: EQW_Images.CARD_FACE_L (501), 60 帧, 单帧 110×190
|
||||
*
|
||||
* 精灵ID分配: 1820–1827(群组 244)
|
||||
*
|
||||
* @see docs_dev/二七王-UI资源与精灵清单.md §1.8「冲关」是什么 / §5.6a / §6.7
|
||||
* @see docs_dev/uiref/冲关牌型显示.png
|
||||
*/
|
||||
//冲关牌型叠加层(清单 §5.6a,Layer 302 群组 244,精灵复制)——
|
||||
//本层的牌用 SpriteCopyUtils 运行时复制,不预置固定张数(cards 长度不定,最多可达 20 余张)。
|
||||
//编辑器里只需建 5 个精灵(3 容器 + 1 牌模板 + 1 遮罩);奖数文字 3 个照常预置。
|
||||
@@ -76,6 +223,81 @@ EQW_Sprites.ChongGuanOverlayView = {
|
||||
}
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// 大局总结算 / 解散结算 - Layer 303 (POPUP_ACCOUNT), Group 241 (ACCOUNT)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* 大局总结算 / 解散结算 - AccountView
|
||||
*
|
||||
* 用途: 打完最后一局(或房间解散)时弹出的总账面板:标题栏 + 三条玩家栏 + 规则栏,
|
||||
* 面板【外】底部另有 4 个功能按钮。解散结算复用同一面板,只是 aset 各项为 0。
|
||||
*
|
||||
* 布局说明(参考图 docs_dev/uiref/大局结算.png;面板居中于 1280×720,
|
||||
* 实测约 x≈80–1180, y≈88–620,按钮条 y≈640–700):
|
||||
*
|
||||
* ┌──────────────────────────────────────────────────────────┐ ← ACC_TITLE_BAR(1901)
|
||||
* │ 二七王-3人 房号654216 共24局 2025-12-14 11:45 [×] │ 1100×56,青绿底
|
||||
* ├──────────────────────────────────────────────────────────┤ ↑ACC_TITLE_TEXT(1902)
|
||||
* │ │ ↑ACC_BTN_CLOSE(1903)
|
||||
* │ ⑴ [头像] 玩家1 基础分30 算奖分12 傍王分15 +135 │ ← 玩家栏(复制生成)
|
||||
* │ ID:100001 总得分30 │
|
||||
* │ ──────────────────────────────────────────────────────── │ ← ACC_TPL_DIVIDER(1915)
|
||||
* │ ⑵ [头像] 玩家2 基础分-30 算奖分-12 傍王分-15 -45 │
|
||||
* │ ID:100002 总得分-30 │
|
||||
* │ ──────────────────────────────────────────────────────── │
|
||||
* │ ⑶ [头像] 玩家3 …… -45 │
|
||||
* │ │
|
||||
* ├──────────────────────────────────────────────────────────┤ ← ACC_RULE_BAR(1904)
|
||||
* │ 规则:可查牌、傍王、爬坡算子 │ 1100×62,浅绿底
|
||||
* └──────────────────────────────────────────────────────────┘ ↑ACC_RULE_TEXT(1905)
|
||||
* ↑ ACC_PANEL_BG(1900) 圆角浅灰绿 1100×540(标题栏与规则栏是它的上下封边)
|
||||
*
|
||||
* ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ← 面板【外】底部
|
||||
* │ 再来一局 │ │ 分享好友 │ │ 复制战绩 │ │ 退出房间 │ 各 190×60
|
||||
* └──────────┘ └──────────┘ └──────────┘ └──────────┘
|
||||
* (1920/21) (1922/23) (1924/25) (1926/27)
|
||||
* 黄 蓝 蓝 红
|
||||
*
|
||||
* 单条玩家栏的列序(左→右):
|
||||
* 名次徽章 → 头像 → 昵称 /「ID:{playerid}」(两行) → 「基础分{n}」/「总得分{n}」(两行)
|
||||
* → 「冲关分{n}」→「傍王分{n}」→ 右侧总分大字
|
||||
* ⚠ 参考图第三列小字写的是「算奖分」,清单 §1.9 定案的字段是 grade_cg_total(冲关分);
|
||||
* 四项 grade_jf_total / grade_cg_total / grade_bw_total 之和恒等于 score(S-6)。
|
||||
*
|
||||
* 元素说明:
|
||||
* - 【玩家栏用精灵复制】三条结构完全相同、仅数据不同,用 SpriteCopyUtils 从 5 个模板
|
||||
* (ACC_TPL_RANK / AVATAR / TEXT / SCORE_NUM / DIVIDER)复制生成;面板外壳与按钮预置。
|
||||
* tag 分段见下方原注释;关闭面板时按各段 removeRange 清理。
|
||||
* - 名次徽章按总分排名取帧(1金 / 2橙 / 3蓝,花瓣形)。
|
||||
* - 总分大字与小局结算的 RESULT_SCORE_* 同一套资源与用法:正分橙带「+」、负分蓝带「-」,
|
||||
* setNumberImage 走 TEXT/WIDTH 属性,_validateSpriteId 也接受复制精灵的字符串 ID,
|
||||
* 故复制出来的玩家栏总分同样【一个精灵显示整串】。
|
||||
* - 规则栏文案据 roomtype 位串拼出已启用项,不硬编码。
|
||||
* - 【解散结算】投递方式与小局结算完全不同(协议 §14.1):rpc 是平台的 free_room、
|
||||
* route 是 room,真实取值路径是 data.deskfree.data.aset / .account(多一层 data 包装),
|
||||
* 且 data.deskfree 可能缺失(开战后、首局发牌前解散)→ 前端必须容忍。
|
||||
* 解散的申请/投票/同意拒绝界面【由平台全包】(Layer 420),子游戏不做投票界面。
|
||||
* - 【无布局节点·待补】Layout_Result.js 目前只配了小局结算与冲关遮罩,本 View 的
|
||||
* ACC_* 一个布局节点都没有——上图坐标是参考图目视实测,尚未落进 EQW_Layout。
|
||||
* 实现前须先补齐布局配置,不得在渲染代码里就地硬编码坐标(零裸值红线)。
|
||||
*
|
||||
* 资源说明:
|
||||
* - 面板底: EQW_Images.PANEL_ACCOUNT (610), 1 帧, 1100×540, 圆角浅灰绿
|
||||
* - 标题栏: EQW_Images.BAR_ACCOUNT_TITLE (611), 1 帧, 1100×56, 青绿底含圆角上沿
|
||||
* - 规则栏: EQW_Images.BAR_ACCOUNT_RULE (612), 1 帧, 1100×62, 浅绿底含圆角下沿
|
||||
* - 关闭钮: EQW_Images.BTN_ACC_CLOSE (547), 1 帧, 36×36
|
||||
* - 名次徽章: EQW_Images.BADGE_RANK (579), 3 帧, 44×44, 帧=名次 1–3
|
||||
* - 分隔线: EQW_Images.LINE_DIVIDER (613), 1 帧, 1060×2
|
||||
* - 总分数字: EQW_Images.NUM_RESULT_WIN (632) / NUM_RESULT_LOSE (633), 16 帧, 单字符 46×62
|
||||
* - 四个按钮: EQW_Images.BTN_ACCOUNT_AGAIN (543) / SHARE (544) / COPY (545) / EXIT (546),
|
||||
* 各 1 帧, 190×60
|
||||
*
|
||||
* 精灵ID分配: 1900–1905 / 1910–1915 / 1920–1927(群组 241)
|
||||
*
|
||||
* @see docs_dev/二七王-UI资源与精灵清单.md §1.9 大局总结算 / §1.10 解散结算 / §5.7a
|
||||
* @see docs_dev/uiref/大局结算.png
|
||||
*/
|
||||
//大局总结算 / 解散结算(清单 §5.7a,Layer 303 群组 241,玩家栏用精灵复制)——
|
||||
//三条玩家栏结构完全相同、仅数据不同,用 SpriteCopyUtils 复制生成;面板外壳与按钮预置。
|
||||
//tag 分段(SpriteCopyUtils.createTagManager):rank 1–20 / avatar 21–40 / text 41–140(每行 6 条文字)/ score 141–160 / divider 161–180。
|
||||
@@ -118,6 +340,68 @@ EQW_Sprites.AccountView = {
|
||||
}
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// 出牌历史 / 上一轮 / 亮牌 - Layer 304 (POPUP_HISTORY), Group 242 (HISTORY)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* 出牌历史 / 上一轮 / 亮牌 - HistoryView
|
||||
*
|
||||
* 用途: 半透黑遮罩 + 每家一排牌的查看面板,【一套精灵三种用途】,只换数据源:
|
||||
* 出牌历史 = pushlist 全部轮次摊平聚合到各家,三排
|
||||
* 上一轮 = pushlist 末尾一项,三排
|
||||
* 亮牌 = liangpai.cards(庄家的固定主牌),只用一排
|
||||
*
|
||||
* 布局说明(版式照 docs_dev/uiref/冲关牌型显示.png——本 View 与 MingPaiView、
|
||||
* ChongGuanOverlayView 三者是同一种版式:遮罩 + 每家一排重叠排列的大牌):
|
||||
*
|
||||
* ┌──────────────────────────────────────────────────────────────┐ y=0
|
||||
* │ ┌──┬──┬──┬──┬────┐ ┌──┬──┬──┬──┬────┐ │
|
||||
* │ │K │K │K │K │ K │ │K │K │K │K │ K │ │
|
||||
* │ └──┴──┴──┴──┴────┘ └──┴──┴──┴──┴────┘ │
|
||||
* │ ↑CG_BOX 位同左上家 ↑位同右上家 │
|
||||
* │ HIST_BOX_LEFT(1951) HIST_BOX_RIGHT(1952) │
|
||||
* │ HIST_LABEL_LEFT(1955) HIST_LABEL_RIGHT(1956)│
|
||||
* │ │
|
||||
* │ (半透黑遮罩 HIST_MASK(1950) 铺满全屏,兼关闭热区)│
|
||||
* │ │
|
||||
* │ ┌──┬──┬──┬──┬────┐ │
|
||||
* │ │K │K │K │K │ K │ ← HIST_BOX_SELF(1953) │
|
||||
* │ └──┴──┴──┴──┴────┘ HIST_LABEL_SELF(1957) │
|
||||
* └──────────────────────────────────────────────────────────────┘ y=720
|
||||
*
|
||||
* 三排的落点与各自座位方位一致(左上家在左、右上家在右、自己中央偏下),
|
||||
* 与 ChongGuanOverlayView 同构;【亮牌】只显示庄家那一排,其余两个容器隐藏。
|
||||
*
|
||||
* 元素说明:
|
||||
* - 【牌用精灵复制】张数不定(出牌历史摊平后可达整手 28 张以上),
|
||||
* 编辑器里只建 1 个遮罩 + 3 个容器 + 1 个牌模板 + 3 个座位标签文字。
|
||||
* 关闭 / onDestroy 时必须 removeRange 清理复制精灵。
|
||||
* - 出牌历史与上一轮【仅可查牌模式】;不可查牌模式下底栏那两个按钮整体不出现。
|
||||
* 数据在出牌过程中由前端逐包(chupai1/2/3)自行累积,重连时从 pushlist 恢复。
|
||||
* - 出牌历史【不按轮次分组】(D-7 已定):每家出过的牌全部摊平聚合到该玩家名下,
|
||||
* 再按手牌那套主牌序排序,三家各一排。前端自行摊平 + 排序,不需要改服务端。
|
||||
* - 【亮牌的关闭方式与其余两个面板不同】:只按自动时长关闭
|
||||
* (EQW_Anim.LIANGPAI_AUTO_CLOSE = 3000,清单原文时长「默认值待定」,现值为起始估值),
|
||||
* 遮罩【不注册点击事件】;而出牌历史 / 上一轮是点遮罩关闭。同一批精灵、两种关闭策略,
|
||||
* 实现时按用途分别挂事件,别写混。
|
||||
* - 【亮牌时机 T-34 已定】埋牌后、出牌前——庄家埋牌完成、服务端下发 maipai 包(带 liangpai)
|
||||
* 时弹出,出牌开始前收起;只有【闲家】会收到并弹出,庄家自己不弹。
|
||||
* 一次性弹出、不是常驻入口;不阻塞出牌,若面板还开着就收到出牌推送,直接收起即可。
|
||||
* - 【与 MingPaiView 的关系】版式相同、渲染逻辑可共用,但数据独立、图层不同
|
||||
* (304 vs 305),故拆成两个 View——一个 View 恰好一个图层。
|
||||
* - 【无布局节点·待补】Layout_*.js 里没有 HIST_* 布局节点;牌排可参照
|
||||
* EQW_Layout.CHONGGUAN_FAN 的同构参数,实现前须补齐配置,不在渲染代码里硬编码坐标。
|
||||
*
|
||||
* 资源说明:
|
||||
* - 遮罩: EQW_Images.MASK_DIM (609), 1 帧, 纯色可拉伸(与冲关/明牌共用)
|
||||
* - 牌模板: EQW_Images.CARD_FACE_L (501), 60 帧, 单帧 110×190
|
||||
*
|
||||
* 精灵ID分配: 1950–1957(群组 242)
|
||||
*
|
||||
* @see docs_dev/二七王-UI资源与精灵清单.md §1.6 亮牌 / §1.7 出牌历史 / §5.7b
|
||||
* @see docs_dev/uiref/冲关牌型显示.png
|
||||
*/
|
||||
//出牌历史 / 上一轮 / 亮牌(清单 §5.7b,Layer 304,群组 242,牌用精灵复制)——
|
||||
//三家都显示,数据 = pushlist 摊平聚合到各家(§1.7 D-7);上一轮同一套精灵,只取 pushlist 末尾一项;
|
||||
//亮牌只显示一排(庄家固定主牌),数据 = liangpai.cards(§1.6),复用同一套遮罩+容器+牌模板,仅数据源与排数不同。
|
||||
@@ -140,6 +424,56 @@ EQW_Sprites.HistoryView = {
|
||||
}
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// 明牌面板 - Layer 305 (POPUP_MINGPAI), Group 243 (MINGPAI)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* 明牌面板 - MingPaiView
|
||||
*
|
||||
* 用途: 半透黑遮罩 + 【另两家】各一排牌,展示他们手中全部未出主牌的具体牌面。
|
||||
* 与 HistoryView 版式相同,差别只在数据源与家数(明牌只看他家,没有自己那排)。
|
||||
*
|
||||
* 布局说明(版式照 docs_dev/uiref/冲关牌型显示.png,去掉中央偏下的自己那一排):
|
||||
*
|
||||
* ┌──────────────────────────────────────────────────────────────┐ y=0
|
||||
* │ ┌──┬──┬──┬──┬────┐ ┌──┬──┬──┬──┬────┐ │
|
||||
* │ │K │K │K │K │ K │ │K │K │K │K │ K │ │
|
||||
* │ └──┴──┴──┴──┴────┘ └──┴──┴──┴──┴────┘ │
|
||||
* │ ↑ MING_BOX_A(2001) ↑ MING_BOX_B(2002) │
|
||||
* │ MING_LABEL_A(2004) MING_LABEL_B(2005) │
|
||||
* │ │
|
||||
* │ (半透黑遮罩 MING_MASK(2000) 铺满全屏,兼关闭热区) │
|
||||
* │ │
|
||||
* │ (自己那排不存在——自己的牌自己看得见) │
|
||||
* │ │
|
||||
* └──────────────────────────────────────────────────────────────┘ y=720
|
||||
*
|
||||
* A / B 两个容器分别落在两个他家的方位(左上 / 右上),与 HistoryView 的
|
||||
* HIST_BOX_LEFT / HIST_BOX_RIGHT 同位;牌用 CARD_FACE_L 重叠排列(fan)。
|
||||
*
|
||||
* 元素说明:
|
||||
* - 【按钮显示条件 D-6 已定,按 design 手册】可查牌模式 + 出牌阶段 +
|
||||
* 【场上已有任一玩家报无主】(baozhu == 1) → 三家都显示「明牌」按钮,可随时查看、不限次数。
|
||||
* 判定的是「场上有人报无主」,不是「自己报无主」——报无主的那位自己也能看。
|
||||
* - 交互: 点按钮 → 发 mingpai { seat } → 收 mingpai { seat, others:[{seat, zhucards}] }
|
||||
* → 弹出本面板。【再点一次取消是纯前端开关】,不再请求服务端。
|
||||
* - 关闭方式: 点遮罩关闭;另可再点底栏按钮切换(与亮牌的「仅自动时长关闭」不同)。
|
||||
* - 【牌用精灵复制】张数不定;编辑器里只建 1 遮罩 + 2 容器 + 1 牌模板 + 2 标签文字。
|
||||
* 关闭 / onDestroy 时必须 removeRange 清理。
|
||||
* - 【为什么与 HistoryView 拆成两个 View】版式相同、渲染逻辑可共用,但两者数据独立、
|
||||
* 图层不同(304 vs 305);本项目约定「一个 View 恰好一个图层」,故各自成 View。
|
||||
* - 【无布局节点·待补】Layout_*.js 里没有 MING_* 布局节点,同 HistoryView 的说明。
|
||||
*
|
||||
* 资源说明:
|
||||
* - 遮罩: EQW_Images.MASK_DIM (609), 1 帧, 纯色可拉伸(与冲关/出牌历史共用同一资源)
|
||||
* - 牌模板: EQW_Images.CARD_FACE_L (501), 60 帧, 单帧 110×190
|
||||
*
|
||||
* 精灵ID分配: 2000–2005(群组 243)
|
||||
*
|
||||
* @see docs_dev/二七王-UI资源与精灵清单.md §1.7 明牌(D-6)/ §2.6 底栏 / §5.7b
|
||||
* @see docs_dev/uiref/冲关牌型显示.png
|
||||
*/
|
||||
//明牌(清单 §5.7b,Layer 305,群组 243,牌用精灵复制)——
|
||||
//只显示另两家,数据 = mingpai.others[].zhucards(§1.7 D-6);
|
||||
//版式与上方 HistoryView(Layer 304)相同(遮罩 + 每家一排牌),差别只在数据源与家数,两个 View 共用同一套渲染逻辑,
|
||||
|
||||
Reference in New Issue
Block a user