#include using namespace extra2d; // ============================================================================ // Hello World 示例 // ============================================================================ int main(int argc, char **argv) { E2D_INFO(CAT_APP, "========================"); E2D_INFO(CAT_APP, "Extra2D Hello World Demo"); E2D_INFO(CAT_APP, "========================"); // 获取应用实例并初始化 auto &app = Application::instance(); if (!app.init()) { E2D_ERROR(CAT_APP, "应用初始化失败!"); return -1; } // 获取事件服务并订阅键盘事件 auto eventService = ServiceLocator::instance().get(); if (eventService) { // 订阅 ESC 键退出 eventService->on(EventType::KeyPressed, [&app](Event &e) { auto &keyEvent = std::get(e.data); if (keyEvent.key == static_cast(Key::Escape)) { E2D_INFO(CAT_INPUT, "ESC 键按下,退出应用"); app.quit(); } }); // 订阅手柄按钮退出 eventService->on(EventType::GamepadButtonPressed, [&app](Event &e) { auto &btnEvent = std::get(e.data); if (btnEvent.button == static_cast(Gamepad::Start)) { E2D_INFO(CAT_INPUT, "START 按钮按下,退出应用"); app.quit(); } }); } E2D_INFO(CAT_APP, "开始主循环..."); // 运行应用 app.run(); E2D_INFO(CAT_APP, "应用结束"); return 0; }