#include "hello_module.h" #include using namespace extra2d; class HelloScene : public Scene { public: void onEnter() override { Scene::onEnter(); E2D_INFO("HelloScene entered"); setBackgroundColor(Color(0.1f, 0.1f, 0.2f, 1.0f)); auto hello = Application::get().get(); if (hello) { E2D_INFO("Scene calling HelloModule from onEnter..."); hello->sayHello(); } } void onUpdate(float dt) override { Scene::onUpdate(dt); time_ += dt; if (time_ >= 1.0f) { auto *hello = Application::get().get(); if (hello) { E2D_INFO("Scene calling HelloModule from onUpdate..."); hello->sayHello(); } time_ = 0.0f; } } void onRender(RenderBackend &renderer) override { Scene::onRender(renderer); } private: float time_ = 0.0f; }; int main(int argc, char *argv[]) { Application &app = Application::get(); // 注册模块 app.use([](auto &cfg) { cfg.w = 800; cfg.h = 600; cfg.backend = "glfw"; }); app.use([](auto &cfg) { cfg.backend = "opengl"; cfg.priority = 10; }); app.use([](auto &cfg) { cfg.greeting = "Hello from custom module!"; cfg.repeatCount = 3; }); if (!app.init()) { E2D_INFO("Failed to initialize application"); return 1; } auto scene = makeShared(); app.enterScene(scene); app.run(); app.shutdown(); return 0; }