#pragma once #include #include #include namespace extra2d::events { /** * @brief 引擎事件总线 */ DECLARE_EVENT_BUS(Engine) // ============================================================================ // 应用生命周期事件 // ============================================================================ /** * @brief 应用初始化完成事件 */ DECLARE_EVENT_0(OnInit, Engine) /** * @brief 应用关闭事件 */ DECLARE_EVENT_0(OnShutdown, Engine) /** * @brief 应用暂停事件 */ DECLARE_EVENT_0(OnPause, Engine) /** * @brief 应用恢复事件 */ DECLARE_EVENT_0(OnResume, Engine) /** * @brief 帧更新事件 * @param dt 帧间隔时间 */ DECLARE_EVENT_1(OnUpdate, Engine, float) /** * @brief 帧更新后事件 * @param dt 帧间隔时间 */ DECLARE_EVENT_1(OnLateUpdate, Engine, float) /** * @brief 固定更新事件 * @param dt 固定时间步长 */ DECLARE_EVENT_1(OnFixedUpdate, Engine, float) // ============================================================================ // 窗口事件 // ============================================================================ /** * @brief 窗口大小改变事件 * @param width 新宽度 * @param height 新高度 */ DECLARE_EVENT_2(OnResize, Engine, int32, int32) /** * @brief 窗口关闭事件 */ DECLARE_EVENT_0(OnClose, Engine) /** * @brief 窗口获得焦点事件 */ DECLARE_EVENT_0(OnFocus, Engine) /** * @brief 窗口失去焦点事件 */ DECLARE_EVENT_0(OnBlur, Engine) /** * @brief 窗口显示事件 */ DECLARE_EVENT_0(OnShow, Engine) /** * @brief 窗口隐藏事件 */ DECLARE_EVENT_0(OnHide, Engine) // ============================================================================ // 输入事件 // ============================================================================ /** * @brief 键盘按下事件 * @param key 按键码 */ DECLARE_EVENT_1(OnKeyDown, Engine, int32) /** * @brief 键盘释放事件 * @param key 按键码 */ DECLARE_EVENT_1(OnKeyUp, Engine, int32) /** * @brief 鼠标按下事件 * @param button 鼠标按键 * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_3(OnMouseDown, Engine, int32, int32, int32) /** * @brief 鼠标释放事件 * @param button 鼠标按键 * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_3(OnMouseUp, Engine, int32, int32, int32) /** * @brief 鼠标移动事件 * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_2(OnMouseMove, Engine, int32, int32) /** * @brief 鼠标滚轮事件 * @param delta 滚轮增量 */ DECLARE_EVENT_1(OnMouseWheel, Engine, int32) /** * @brief 触摸开始事件 * @param touchId 触摸点ID * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_3(OnTouchBegin, Engine, int32, int32, int32) /** * @brief 触摸移动事件 * @param touchId 触摸点ID * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_3(OnTouchMove, Engine, int32, int32, int32) /** * @brief 触摸结束事件 * @param touchId 触摸点ID * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_3(OnTouchEnd, Engine, int32, int32, int32) /** * @brief 触摸取消事件 * @param touchId 触摸点ID * @param x X 坐标 * @param y Y 坐标 */ DECLARE_EVENT_3(OnTouchCancel, Engine, int32, int32, int32) /** * @brief 游戏手柄连接事件 * @param deviceId 设备ID */ DECLARE_EVENT_1(OnGamepadConnect, Engine, int32) /** * @brief 游戏手柄断开事件 * @param deviceId 设备ID */ DECLARE_EVENT_1(OnGamepadDisconnect, Engine, int32) // ============================================================================ // 场景事件 // ============================================================================ /** * @brief 场景加载完成事件 */ DECLARE_EVENT_0(OnSceneLoad, Engine) /** * @brief 场景卸载事件 */ DECLARE_EVENT_0(OnSceneUnload, Engine) // ============================================================================ // 系统事件 // ============================================================================ /** * @brief 低内存警告事件 */ DECLARE_EVENT_0(OnLowMemory, Engine) /** * @brief 进入后台事件 */ DECLARE_EVENT_0(OnEnterBackground, Engine) /** * @brief 进入前台事件 */ DECLARE_EVENT_0(OnEnterForeground, Engine) } // namespace extra2d::events