2026-02-27 22:59:17 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
2026-02-28 04:44:56 +08:00
|
|
|
#include <event/event_bus_macros.h>
|
2026-02-27 22:59:17 +08:00
|
|
|
#include <platform/input.h>
|
2026-02-28 04:44:56 +08:00
|
|
|
#include <types/base/types.h>
|
|
|
|
|
|
2026-02-27 22:59:17 +08:00
|
|
|
|
|
|
|
|
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 触摸开始事件
|
2026-02-28 20:56:11 +08:00
|
|
|
* @param touchId 触摸点ID
|
|
|
|
|
* @param x X 坐标
|
|
|
|
|
* @param y Y 坐标
|
2026-02-27 22:59:17 +08:00
|
|
|
*/
|
2026-02-28 20:56:11 +08:00
|
|
|
DECLARE_EVENT_3(OnTouchBegin, Engine, int32, int32, int32)
|
2026-02-27 22:59:17 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 触摸移动事件
|
2026-02-28 20:56:11 +08:00
|
|
|
* @param touchId 触摸点ID
|
|
|
|
|
* @param x X 坐标
|
|
|
|
|
* @param y Y 坐标
|
2026-02-27 22:59:17 +08:00
|
|
|
*/
|
2026-02-28 20:56:11 +08:00
|
|
|
DECLARE_EVENT_3(OnTouchMove, Engine, int32, int32, int32)
|
2026-02-27 22:59:17 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 触摸结束事件
|
2026-02-28 20:56:11 +08:00
|
|
|
* @param touchId 触摸点ID
|
|
|
|
|
* @param x X 坐标
|
|
|
|
|
* @param y Y 坐标
|
2026-02-27 22:59:17 +08:00
|
|
|
*/
|
2026-02-28 20:56:11 +08:00
|
|
|
DECLARE_EVENT_3(OnTouchEnd, Engine, int32, int32, int32)
|
2026-02-27 22:59:17 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 触摸取消事件
|
2026-02-28 20:56:11 +08:00
|
|
|
* @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
|
2026-02-27 22:59:17 +08:00
|
|
|
*/
|
2026-02-28 20:56:11 +08:00
|
|
|
DECLARE_EVENT_1(OnGamepadDisconnect, Engine, int32)
|
2026-02-27 22:59:17 +08:00
|
|
|
|
|
|
|
|
// ============================================================================
|
|
|
|
|
// 场景事件
|
|
|
|
|
// ============================================================================
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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
|