diff options
Diffstat (limited to 'src/games/tetris/Tetromino.hpp')
| -rw-r--r-- | src/games/tetris/Tetromino.hpp | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/games/tetris/Tetromino.hpp b/src/games/tetris/Tetromino.hpp index b40555b..86821b9 100644 --- a/src/games/tetris/Tetromino.hpp +++ b/src/games/tetris/Tetromino.hpp @@ -7,7 +7,7 @@ class Tetromino { public: - enum TetrominoId : uint8_t { + enum Id : uint8_t { o_piece, s_piece, z_piece, @@ -19,48 +19,46 @@ public: id_none, }; - enum TetrominoRotation { + enum Rotation { rotate_clockwise = 1, rotate_counter_clockwise = 3 }; - enum TetrominoDirection { + enum Direction { left = -1, right = 1 }; public: - void Reinit(uint16_t* board_bitmap); + explicit Tetromino(uint16_t* board_bitmap); + void Reset(Id id); - TetrominoId GetId(); + Id GetId(); BoardPos GetPos(); int32_t GetOri(); - void GetBitmap(uint16_t *bitmap); - bool IsCollisionWithBoard(); + void GetBitmap(uint16_t* bitmap); + bool IsCollisionWithBoard(); bool MaybeMoveDown(); - void MaybeMoveHorizontally(TetrominoDirection direction); - void MaybeRotate(TetrominoRotation rotation); + void MaybeMoveHorizontally(Direction direction); + void MaybeRotate(Rotation rotation); void Draw(); public: - static bool IsCollisionWithBoard(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *board_bitmap); - static void GetBitmap(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *bitmap); - static Color GetColor(TetrominoId id); - static void Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale); - - -private: - static TetrominoId GetRandomId(); + static Id GenerateRandomId(); + static bool IsCollisionWithBoard(Id id, BoardPos pos, int32_t ori, uint16_t *board_bitmap); + static void GetBitmap(Id id, BoardPos pos, int32_t ori, uint16_t *bitmap); + static Color GetColor(Id id); + static void Draw(Id id, int32_t ori, V2F32 pos, float scale); private: - TetrominoId m_id; + Id m_id; BoardPos m_pos; int32_t m_ori; - uint16_t *m_board_bitmap; + uint16_t* m_board_bitmap; }; |
