Files
youle_framework/client/js/gameabc-framework/templates/GameView_Sprites.template.js
T

206 lines
7.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* ============================================================================
* GameView_Sprites.template.js - 精灵 ID 定义规范
* ============================================================================
*
* 使用方式:
* 将此文件复制到游戏项目中,按实际精灵 ID 填写。
* 建议按界面拆分为多个文件,例如:
* RoomView_Sprites.js (房间等待界面)
* GameView_Sprites.js (游戏主界面)
* PopupView_Sprites.js (弹窗/结算界面)
* 所有 ID 值必须与 gameabc 编辑器中实际配置的精灵/图层/群组 ID 完全一致,
* 不可自行编造数字。
*
* ============================================================================
* ID 分配规范
* ============================================================================
*
* 精灵 ID:子游戏使用 1001+(框架保留 1–1000)
* 图层 ID:普通图层 101–200,弹窗图层 301+(框架保留 1–100)
* 群组 ID:子游戏使用 201+(框架保留 1–200)
*
* ============================================================================
* 文件结构规范
* ============================================================================
*
* 顶层变量对应一个"界面",每个界面包含:
*
* VAR_NAME.VIEW_NAME = {
* LAYER: <图层ID>, // 必填,该界面挂载的图层
*
* SOME_GROUP: {
* GROUP_ID: <群组ID>, // 必填,该功能区的群组
* SPRITES: {
* SPRITE_KEY: <精灵ID>, // 每个精灵
* ...
* }
* },
*
* // 也可不用群组,直接列精灵
* SIMPLE_SPRITE: <精灵ID>
* };
*
* ============================================================================
* 每个精灵条目必须包含的注释字段
* ============================================================================
*
* 类型:图片精灵 / 文字精灵 / 容器精灵 / 热区精灵
* 用途:一句话说明该精灵在游戏中的作用
* 资源:引用的 ImageResources 键名(图片精灵必填)
* 帧说明:初始帧及切换时机(如有多帧)
*
* ============================================================================
* 精灵类型说明
* ============================================================================
*
* 图片精灵:显示图片/帧动画,用 SpriteManager.setFrame() 切换画面
* 文字精灵:显示动态文字,用 SpriteManager.setText() 修改内容
* 容器精灵:作为 SpriteCopyUtils 的父容器,本身不显示内容
* 热区精灵:仅用于点击检测,透明不显示
*
* ============================================================================
* 注意事项
* ============================================================================
*
* - 玩家信息 UI(头像/昵称/分数/准备标识/房主标识)由平台框架提供,
* 子游戏无需也不应在此重复定义
* - GlobalUI(加载界面、消息弹窗、确认对话框)由框架提供,
* 子游戏弹窗从 Layer 302+ 开始定义
*
* @see ImageResources.template.js 图片资源 ID 定义规范
* @see SoundResources.template.js 音效资源 ID 定义规范
*/
'use strict';
// ============================================================================
// 房间界面精灵定义 (Layer xxx)
// ============================================================================
// /**
// * RoomView_Sprites - 房间等待界面精灵定义
// * 图层:Layer <在编辑器查到的图层ID>
// * 用途:显示等待玩家加入、规则配置、准备/开始状态
// */
// var RoomView_Sprites = {};
//
// RoomView_Sprites.ROOM_VIEW = {
// LAYER: <图层ID>,
//
// // 规则配置群组
// // 用途:创建房间时的玩法选项(圈数、人数、特殊规则等)
// ROOM_CONFIG_GROUP: {
// GROUP_ID: <群组ID>,
// SPRITES: {
// // 图片精灵:第1行标题图片,资源=ImageResources.XXX,帧=1
// ROW1_TITLE: <精灵ID>,
//
// // 图片精灵:第1行选项1图标,资源=ImageResources.XXX,帧1=未选中 帧2=已选中
// ROW1_OPTION1: <精灵ID>,
//
// // 文字精灵:第1行选项1文字说明
// ROW1_OPTION1_TEXT: <精灵ID>,
//
// // ... 按实际选项行数继续定义
// }
// }
// };
// ============================================================================
// 游戏主界面精灵定义 (Layer xxx)
// ============================================================================
// /**
// * GameView_Sprites - 游戏主界面精灵定义
// */
// var GameView_Sprites = {};
//
// /**
// * 牌桌主体
// * 图层:Layer <在编辑器查到的图层ID>
// */
// GameView_Sprites.GAME_VIEW = {
// LAYER: <图层ID>,
//
// // 中央信息群组
// // 用途:牌桌中央区域,方向指示器、剩余牌数、倒计时等
// CENTER_INFO_GROUP: {
// GROUP_ID: <群组ID>,
// SPRITES: {
// // 图片精灵:方向面板背景,资源=ImageResources.XXX,4帧(帧1–4对应庄家方向)
// DIRECTION_PANEL_BG: <精灵ID>,
//
// // 图片精灵:倒计时数字,资源=ImageResources.XXX,10帧(帧1–10对应数字0–9)
// COUNTDOWN_NUMBER: <精灵ID>,
//
// // 图片精灵:剩余牌数数字,资源=ImageResources.XXX,10帧(帧1–10对应数字0–9)
// REMAIN_COUNT: <精灵ID>
// }
// },
//
// // 玩家1手牌群组(下方/自己)
// // 用途:显示自己手牌,支持点击选牌出牌
// PLAYER1_HAND_GROUP: {
// GROUP_ID: <群组ID>,
// SPRITES: {
// // 图片精灵×13:手牌1–13,资源=ImageResources.CARD_FACE,帧=当前牌值对应帧
// HAND_CARD_1: <精灵ID>,
// // ... HAND_CARD_2 至 HAND_CARD_13
// HAND_CARD_13: <精灵ID>,
//
// // 图片精灵:摸牌(最右端,与手牌略有间距)
// DRAW_CARD: <精灵ID>
// }
// },
//
// // 玩家2手牌群组(右方)
// // 用途:显示右方玩家牌背(侧面透视角度)
// PLAYER2_HAND_GROUP: {
// GROUP_ID: <群组ID>,
// SPRITES: {
// HAND_CARD_1: <精灵ID>,
// // ...
// DRAW_CARD: <精灵ID>
// }
// }
//
// // 玩家3(上方)、玩家4(左方)结构同上...
// };
//
// /**
// * 游戏操作按钮
// * 图层:Layer <在编辑器查到的图层ID>
// * 用途:玩家可操作时显示的吃/碰/杠/胡/过/听按钮
// */
// GameView_Sprites.GAME_ACTIONS_UI = {
// LAYER: <图层ID>,
//
// ACTION_BUTTONS_GROUP: {
// GROUP_ID: <群组ID>,
// SPRITES: {
// // 图片精灵:吃牌按钮,资源=ImageResources.BTN_CHI,1帧
// BTN_CHI: <精灵ID>,
// BTN_PONG: <精灵ID>,
// BTN_KONG: <精灵ID>,
// BTN_HU: <精灵ID>,
// BTN_PASS: <精灵ID>,
// BTN_TING: <精灵ID>,
//
// // 图片精灵:操作文字弹出动画,资源=ImageResources.OPERATION_EFFECT_XXX
// ACTION_EFFECT_CHI: <精灵ID>,
// ACTION_EFFECT_PONG: <精灵ID>,
// ACTION_EFFECT_KONG: <精灵ID>,
// ACTION_EFFECT_HU: <精灵ID>
// }
// }
// };
// ============================================================================
// 弹窗界面精灵定义 (Layer 301+)
// ============================================================================
// 子游戏自定义弹窗从 Layer 302+ 开始定义
// Layer 301 建议预留给最高优先级的全局弹窗(如断线重连提示)