input manager provides ground of truth on device input choise
This commit is contained in:
@@ -4,14 +4,14 @@
|
||||
// Simple demo game to test the launcher
|
||||
|
||||
#include "demo_game.h"
|
||||
#include "board_config.h"
|
||||
#include "input_manager.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
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) {
|
||||
DemoGame::DemoGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager)
|
||||
: Game(width, height, renderer, gui, input_manager), tap_count(0), exit_requested(false) {
|
||||
}
|
||||
|
||||
void DemoGame::init() {
|
||||
@@ -54,11 +54,11 @@ void DemoGame::draw() {
|
||||
|
||||
// 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
|
||||
if (input_manager->has_buttons()) {
|
||||
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);
|
||||
}
|
||||
} else {
|
||||
renderer->draw_string(width/2 - 70, y + 80, "Exiting to menu...", true);
|
||||
}
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
*/
|
||||
class DemoGame : public Game {
|
||||
public:
|
||||
DemoGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui);
|
||||
DemoGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager);
|
||||
|
||||
void init() override;
|
||||
bool update(const InputEvent& event) override;
|
||||
void draw() override;
|
||||
bool wants_to_exit() const override { return exit_requested; }
|
||||
|
||||
private:
|
||||
int tap_count;
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
// Game logic, input handling, and rendering for Tic-Tac-Toe
|
||||
|
||||
#include "tic_tac_toe.h"
|
||||
#include "board_config.h"
|
||||
#include "input_manager.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
// Font reference from display system
|
||||
extern Font font_5x5_obj;
|
||||
|
||||
TicTacToeGame::TicTacToeGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui)
|
||||
: Game(width, height, renderer, gui) {
|
||||
TicTacToeGame::TicTacToeGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager)
|
||||
: Game(width, height, renderer, gui, input_manager) {
|
||||
// Initialize statistics to zero
|
||||
state.x_wins = 0;
|
||||
state.o_wins = 0;
|
||||
@@ -220,20 +220,20 @@ void TicTacToeGame::draw() {
|
||||
} else {
|
||||
renderer->draw_string(20, 40, "TIE GAME!", true);
|
||||
}
|
||||
#ifdef BUTTON_KEY0_PIN
|
||||
renderer->draw_string(20, 55, "Touch or KEY0 to restart", true);
|
||||
#else
|
||||
renderer->draw_string(20, 55, "Touch to restart", true);
|
||||
#endif
|
||||
if (input_manager->has_buttons()) {
|
||||
renderer->draw_string(20, 55, "Touch or KEY0 to restart", true);
|
||||
} else {
|
||||
renderer->draw_string(20, 55, "Touch to restart", true);
|
||||
}
|
||||
} else {
|
||||
char turn_text[30];
|
||||
snprintf(turn_text, sizeof(turn_text), "Turn: %s", state.current_player == 1 ? "X" : "O");
|
||||
renderer->draw_string(20, 40, turn_text, true);
|
||||
#ifdef BUTTON_KEY0_PIN
|
||||
renderer->draw_string(20, 55, "Touch cell or use keys", true);
|
||||
#else
|
||||
renderer->draw_string(20, 55, "Touch cell to play", true);
|
||||
#endif
|
||||
if (input_manager->has_buttons()) {
|
||||
renderer->draw_string(20, 55, "Touch cell or use keys", true);
|
||||
} else {
|
||||
renderer->draw_string(20, 55, "Touch cell to play", true);
|
||||
}
|
||||
}
|
||||
|
||||
// Draw game board (use same layout as touch detection!)
|
||||
|
||||
@@ -26,8 +26,9 @@ public:
|
||||
* @param height Display height in pixels
|
||||
* @param renderer Pointer to low-level rendering interface
|
||||
* @param gui Pointer to GUI drawing primitives
|
||||
* @param input_manager Pointer to input manager for capability queries
|
||||
*/
|
||||
TicTacToeGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui);
|
||||
TicTacToeGame(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager);
|
||||
|
||||
/**
|
||||
* @brief Initialize game state (reset board, keep statistics)
|
||||
|
||||
Reference in New Issue
Block a user