| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { EventTarget } from 'cc';
- /**
- * 全局事件总线,用于模块间解耦通信。
- */
- export enum GameEvents {
- // 游戏状态事件
- GAME_START = 'GAME_START',
- GAME_PAUSE = 'GAME_PAUSE',
- GAME_RESUME = 'GAME_RESUME',
- GAME_SUCCESS = 'GAME_SUCCESS',
- GAME_DEFEAT = 'GAME_DEFEAT',
-
- // 游戏重置事件
- GAME_RESTART = 'GAME_RESTART',
- GAME_RESET_REQUEST = 'GAME_RESET_REQUEST',
- GAME_RESET_COMPLETE = 'GAME_RESET_COMPLETE',
-
- // 组件重置事件
- RESET_GAME_MANAGER = 'RESET_GAME_MANAGER',
- RESET_ENEMY_CONTROLLER = 'RESET_ENEMY_CONTROLLER',
- RESET_BALL_CONTROLLER = 'RESET_BALL_CONTROLLER',
- RESET_BLOCK_MANAGER = 'RESET_BLOCK_MANAGER',
- RESET_BLOCK_SELECTION = 'RESET_BLOCK_SELECTION',
- RESET_WALL_HEALTH = 'RESET_WALL_HEALTH',
- RESET_GAME_PAUSE = 'RESET_GAME_PAUSE',
- RESET_UI_STATES = 'RESET_UI_STATES',
- RESET_ENERGY_SYSTEM = 'RESET_ENERGY_SYSTEM',
-
- // 游戏对象清理事件
- CLEAR_ALL_BULLETS = 'CLEAR_ALL_BULLETS',
- CLEAR_ALL_ENEMIES = 'CLEAR_ALL_ENEMIES',
- CLEAR_ALL_GAME_OBJECTS = 'CLEAR_ALL_GAME_OBJECTS',
-
- // UI事件
- UPGRADE_UPDATED = 'UPGRADE_UPDATED',
- RETURN_TO_MAIN_MENU = 'RETURN_TO_MAIN_MENU',
-
- // UI状态切换事件(根据游戏管理文档)
- ENTER_BATTLE_PREPARATION = 'ENTER_BATTLE_PREPARATION', // 进入备战阶段
- ENTER_PLAYING_STATE = 'ENTER_PLAYING_STATE', // 进入游玩状态
- ENTER_GAME_END_STATE = 'ENTER_GAME_END_STATE', // 进入游戏结束状态
-
- // 敌人控制事件
- ENEMY_SPAWN_START = 'ENEMY_SPAWN_START',
- ENEMY_SPAWN_STOP = 'ENEMY_SPAWN_STOP',
- ENEMY_ALL_PAUSE = 'ENEMY_ALL_PAUSE',
- ENEMY_ALL_RESUME = 'ENEMY_ALL_RESUME',
-
- // 墙体事件
- WALL_HEALTH_CHANGED = 'WALL_HEALTH_CHANGED',
- WALL_DESTROYED = 'WALL_DESTROYED',
- WALL_TAKE_DAMAGE = 'WALL_TAKE_DAMAGE',
-
- // 球控制事件
- BALL_CREATE = 'BALL_CREATE',
- BALL_START = 'BALL_START',
- BALL_CREATE_ADDITIONAL = 'BALL_CREATE_ADDITIONAL',
- BALL_FIRE_BULLET = 'BALL_FIRE_BULLET',
-
- // 敌人控制事件
- ENEMY_TAKE_DAMAGE = 'ENEMY_TAKE_DAMAGE',
- ENEMY_SPAWN_REQUEST = 'ENEMY_SPAWN_REQUEST',
- ENEMY_GET_NEAREST = 'ENEMY_GET_NEAREST',
- ENEMY_UPDATE_COUNT = 'ENEMY_UPDATE_COUNT',
- ENEMY_START_WAVE = 'ENEMY_START_WAVE',
- ENEMY_START_GAME = 'ENEMY_START_GAME',
- ENEMY_SHOW_START_WAVE_PROMPT = 'ENEMY_SHOW_START_WAVE_PROMPT',
-
- // 游戏状态检查事件
- GAME_CHECK_OVER = 'GAME_CHECK_OVER',
-
-
- // 方块生成事件
- GENERATE_BLOCKS = 'GENERATE_BLOCKS',
- WAVE_COMPLETED = 'WAVE_COMPLETED',
-
- // 子弹事件
- BULLET_CREATE_REQUEST = 'BULLET_CREATE_REQUEST',
- BULLET_HIT_ENEMY = 'BULLET_HIT_ENEMY'
- }
- export default class EventBus extends EventTarget {
- private static _instance: EventBus;
- private constructor() {
- super();
- }
- public static getInstance(): EventBus {
- if (!this._instance) {
- this._instance = new EventBus();
- }
- return this._instance;
- }
- // 重写emit方法,添加黄色字体的日志输出
- emit(type: string, ...args: any[]): void {
- console.log(`%c[EventBus] 发送事件: ${type}`, 'color: #FFD700; font-weight: bold;', args.length > 0 ? args : '');
- super.emit(type, ...args);
- }
- }
|