// ============================================================================ // DEMO GAME IMPLEMENTATION // ============================================================================ // Simple demo game to test the launcher #include "demo_game.h" #include "board_config.h" #include #include extern Font font_5x5_obj; DemoGame::DemoGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui) : Game(width, height, renderer, gui), tap_count(0), exit_requested(false) { } void DemoGame::init() { tap_count = 0; exit_requested = false; } bool DemoGame::update(const InputEvent& event) { bool needs_refresh = false; if (event.type == INPUT_TOUCH_DOWN || event.type == INPUT_BUTTON_0 || event.type == INPUT_BUTTON_1) { tap_count++; needs_refresh = true; // After 3 taps, signal to exit if (tap_count >= 3) { exit_requested = true; } } return needs_refresh; } void DemoGame::draw() { // Draw main window gui->draw_new_window(10, 10, width - 20, height - 20, "Demo Game"); renderer->set_font(&font_5x5_obj); // Draw centered message int y = height / 2 - 40; renderer->draw_string(width/2 - 60, y, "Demo Game!", true); renderer->draw_string(width/2 - 80, y + 20, "This is a placeholder", true); // Show tap count char count_text[40]; snprintf(count_text, sizeof(count_text), "Taps: %d", tap_count); renderer->draw_string(width/2 - 40, y + 50, count_text, true); // Instructions if (tap_count < 3) { #ifdef BUTTON_KEY0_PIN renderer->draw_string(width/2 - 80, y + 80, "Tap or press 3 times", true); #else renderer->draw_string(width/2 - 80, y + 80, "Tap 3 times to exit", true); #endif } else { renderer->draw_string(width/2 - 70, y + 80, "Exiting to menu...", true); } }