Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

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?

UserRevisionLine numberNew 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