Initial publish
Dependencies: mbed
Fork of el17dg by
game/gameobject.h@33:c623c6d5ed16, 2019-04-29 (annotated)
- Committer:
- Noximilien
- Date:
- Mon Apr 29 08:10:52 2019 +0000
- Revision:
- 33:c623c6d5ed16
- Parent:
- 31:becb8f6bf7b7
Have started working on boss mode. Changed the structure of game.cpp to finite state machine. Moved Game Over to a separate class. slightlight changed the player class. changed geometry into collision library. Cleaned the code to be under 20 lines.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Noximilien | 21:0eb394495b8a | 1 | #ifndef GAMEOBJECT_H |
Noximilien | 21:0eb394495b8a | 2 | #define GAMEOBJECT_H |
Noximilien | 21:0eb394495b8a | 3 | |
Noximilien | 33:c623c6d5ed16 | 4 | #include "collision_lib.h" |
Noximilien | 21:0eb394495b8a | 5 | |
Noximilien | 28:35af3843de8f | 6 | ///////////////////////////////////////////////////////////////////// |
Noximilien | 31:becb8f6bf7b7 | 7 | /** |
Noximilien | 31:becb8f6bf7b7 | 8 | * GameObject Class |
Noximilien | 31:becb8f6bf7b7 | 9 | * @brief Base class for all objects in the game world. |
Noximilien | 29:579e00b7f118 | 10 | * @author Dmitrijs Griskovs |
Noximilien | 29:579e00b7f118 | 11 | * @date 15/04/2019 |
Noximilien | 29:579e00b7f118 | 12 | */ |
Noximilien | 21:0eb394495b8a | 13 | class GameObject { |
Noximilien | 21:0eb394495b8a | 14 | public: |
Noximilien | 31:becb8f6bf7b7 | 15 | /** |
Noximilien | 31:becb8f6bf7b7 | 16 | * @brief Activates the object at the given postion. |
Noximilien | 29:579e00b7f118 | 17 | * @param spawn_pos sets position of x and y into pos (Point). |
Noximilien | 29:579e00b7f118 | 18 | */ |
Noximilien | 21:0eb394495b8a | 19 | void spawn(Point spawn_pos) { |
Noximilien | 21:0eb394495b8a | 20 | pos = spawn_pos; |
Noximilien | 21:0eb394495b8a | 21 | active = true; |
Noximilien | 21:0eb394495b8a | 22 | } |
Noximilien | 21:0eb394495b8a | 23 | Point pos; |
Noximilien | 21:0eb394495b8a | 24 | bool active; |
Noximilien | 21:0eb394495b8a | 25 | }; |
Noximilien | 33:c623c6d5ed16 | 26 | |
Noximilien | 33:c623c6d5ed16 | 27 | /** |
Noximilien | 33:c623c6d5ed16 | 28 | * @brief A simplified function to draw sprites. |
Noximilien | 33:c623c6d5ed16 | 29 | * @details This is a specific function I made to simplify drawing the sprites. |
Noximilien | 33:c623c6d5ed16 | 30 | * It only works with spawn() function in gameobject.h. |
Noximilien | 33:c623c6d5ed16 | 31 | * The parameters for this function are given in the models.cpp for the |
Noximilien | 33:c623c6d5ed16 | 32 | * sprites. |
Noximilien | 33:c623c6d5ed16 | 33 | */ |
Noximilien | 33:c623c6d5ed16 | 34 | static void drawSprite(Point pos, const Sprite& sprite) { |
Noximilien | 33:c623c6d5ed16 | 35 | lcd.drawSprite(pos.x, pos.y, sprite.height, sprite.width, (int*)sprite.data); |
Noximilien | 33:c623c6d5ed16 | 36 | } |
Noximilien | 33:c623c6d5ed16 | 37 | |
Noximilien | 33:c623c6d5ed16 | 38 | /** |
Noximilien | 33:c623c6d5ed16 | 39 | * @brief A simplified function to draw sprites. But this draw black pixels on top of white pixels. |
Noximilien | 33:c623c6d5ed16 | 40 | * @details This is an exactly the same function as before, but for the drawing |
Noximilien | 33:c623c6d5ed16 | 41 | * sprite function that draws the black pixels on top the white pixels when the |
Noximilien | 33:c623c6d5ed16 | 42 | * sprites overlap. |
Noximilien | 33:c623c6d5ed16 | 43 | */ |
Noximilien | 33:c623c6d5ed16 | 44 | static void drawSpriteOnTop(Point pos, const Sprite& sprite) { |
Noximilien | 33:c623c6d5ed16 | 45 | lcd.drawSpriteOnTop(pos.x, pos.y, sprite.height, sprite.width, (int*)sprite.data); |
Noximilien | 33:c623c6d5ed16 | 46 | } |
Noximilien | 21:0eb394495b8a | 47 | #endif |