diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-03-19 19:54:25 +0100 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-03-19 19:54:25 +0100 |
| commit | 6b3fb653f8b342d8ecfc093a000e9f6fa479c644 (patch) | |
| tree | 00ed5c437e673de04b114d545bd00a8c9794986a | |
| parent | 4de52a94442014581a5e2f944eb17c578005afef (diff) | |
| download | tetris-console-6b3fb653f8b342d8ecfc093a000e9f6fa479c644.tar.gz tetris-console-6b3fb653f8b342d8ecfc093a000e9f6fa479c644.zip | |
add input header and rough structure
| -rw-r--r-- | firmware/include/inputs/button.h | 16 | ||||
| -rw-r--r-- | firmware/include/inputs/input.h | 23 | ||||
| -rw-r--r-- | firmware/src/main.cpp | 22 |
3 files changed, 60 insertions, 1 deletions
diff --git a/firmware/include/inputs/button.h b/firmware/include/inputs/button.h new file mode 100644 index 0000000..c3530ae --- /dev/null +++ b/firmware/include/inputs/button.h @@ -0,0 +1,16 @@ +#pragma once + +#include <cstdint> + +namespace inputs { + +class Button { +public: + Button(uint8_t pin); + + bool is_pressed(); + +private: +}; + +} diff --git a/firmware/include/inputs/input.h b/firmware/include/inputs/input.h new file mode 100644 index 0000000..7899ce7 --- /dev/null +++ b/firmware/include/inputs/input.h @@ -0,0 +1,23 @@ +#pragma once + +#include "inputs/button.h" + +namespace inputs { + +class Input { +public: + Input(/* pins */); + + void init(); + + bool down_pressed(); + bool up_pressed(); + bool right_pressed(); + bool left_pressed(); + bool a_pressed(); + bool b_pressed(); + +private: +}; + +} diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp index a669a09..c512327 100644 --- a/firmware/src/main.cpp +++ b/firmware/src/main.cpp @@ -1,11 +1,31 @@ #include <Arduino.h> +#include "inputs/input.h" + +game::GameState state {}; +ui::UI ui { /* pins */ }; +inputs::Input input { /* pins */ }; + void setup() { - + state.init(); + input.init(); + ui.init(); } void loop() { + delay(1); + + if (input.down_pressed()) { + // TODO + } + + // update game state + // render game state + // every second + // automatically move down + // update game state + // render game state } |