Extra2D/examples/hello_world/main.cpp

53 lines
1.6 KiB
C++
Raw Normal View History

2026-02-11 19:40:26 +08:00
#include <extra2d/extra2d.h>
using namespace extra2d;
// ============================================================================
// Hello World 示例
2026-02-11 19:40:26 +08:00
// ============================================================================
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<IEventService>();
if (eventService) {
// 订阅 ESC 键退出
eventService->on(EventType::KeyPressed, [&app](Event &e) {
auto &keyEvent = std::get<KeyEvent>(e.data);
if (keyEvent.key == static_cast<i32>(Key::Escape)) {
E2D_INFO(CAT_INPUT, "ESC 键按下,退出应用");
app.quit();
}
});
// 订阅手柄按钮退出
eventService->on(EventType::GamepadButtonPressed, [&app](Event &e) {
auto &btnEvent = std::get<GamepadButtonEvent>(e.data);
if (btnEvent.button == static_cast<i32>(Gamepad::Start)) {
E2D_INFO(CAT_INPUT, "START 按钮按下,退出应用");
app.quit();
}
});
}
E2D_INFO(CAT_APP, "开始主循环...");
// 运行应用
app.run();
E2D_INFO(CAT_APP, "应用结束");
return 0;
}