Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Thu May 09 12:19:36 2019 +0000
Revision:
52:beeffd296ea3
Parent:
46:69d2d87f78a0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adambakerwa 25:230e4163cb6b 1 #ifndef BLOCKHEADENGINE_H
adambakerwa 25:230e4163cb6b 2 #define BLOCKHEADENGINE_H
adambakerwa 25:230e4163cb6b 3
adambakerwa 25:230e4163cb6b 4 #include "mbed.h"
adambakerwa 25:230e4163cb6b 5 #include "Gamepad.h"
adambakerwa 25:230e4163cb6b 6 #include "N5110.h"
adambakerwa 38:51ed5820ffe5 7 #include "Blockhead.h"
adambakerwa 25:230e4163cb6b 8 #include "Levels.h"
adambakerwa 25:230e4163cb6b 9 #include "Animation.h"
adambakerwa 25:230e4163cb6b 10
adambakerwa 38:51ed5820ffe5 11 /** BlockheadEngine Class
adambakerwa 41:4b20f909bbcb 12 * @brief Class for running the game
adambakerwa 38:51ed5820ffe5 13 * @author Adam P. Baker
adambakerwa 44:03059810630d 14 * @date 9 May 2019
adambakerwa 38:51ed5820ffe5 15 */
adambakerwa 25:230e4163cb6b 16 class BlockheadEngine
adambakerwa 25:230e4163cb6b 17 {
adambakerwa 25:230e4163cb6b 18 public:
adambakerwa 43:11c5d098ce9d 19 /** Constructor */
adambakerwa 38:51ed5820ffe5 20 BlockheadEngine();
adambakerwa 25:230e4163cb6b 21
adambakerwa 43:11c5d098ce9d 22 /** Deconstructor */
adambakerwa 25:230e4163cb6b 23 ~BlockheadEngine();
adambakerwa 25:230e4163cb6b 24
adambakerwa 43:11c5d098ce9d 25 /** Initialises variables in blockhead class and level class and _pos struct. */
adambakerwa 26:3319ddd5111d 26 void init();
adambakerwa 38:51ed5820ffe5 27
adambakerwa 43:11c5d098ce9d 28 /** Intialises variables in blockhead class and level class and _pos struck (except level number which it keeps the same) */
adambakerwa 44:03059810630d 29 void continue_init();
adambakerwa 38:51ed5820ffe5 30
adambakerwa 43:11c5d098ce9d 31 /** runs the game 'blockhead'
adambakerwa 43:11c5d098ce9d 32 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 33 *@param Gamepad class for working with the gamepad
adambakerwa 43:11c5d098ce9d 34 *@returns _gameover (0 when blockhead alive, 1 once died) (int)
adambakerwa 38:51ed5820ffe5 35 */
adambakerwa 25:230e4163cb6b 36 int playgame(N5110 &lcd, Gamepad &pad);
adambakerwa 38:51ed5820ffe5 37
adambakerwa 43:11c5d098ce9d 38 /** sets highscore if new highest level reached
adambakerwa 52:beeffd296ea3 39 *@returns _highscore (int)
adambakerwa 38:51ed5820ffe5 40 */
adambakerwa 36:6f452777b9ce 41 int highscore();
adambakerwa 36:6f452777b9ce 42
adambakerwa 25:230e4163cb6b 43 private:
adambakerwa 25:230e4163cb6b 44
adambakerwa 42:0dad7c359fa5 45 Blockhead _blockhead; //blockhead class
adambakerwa 42:0dad7c359fa5 46 Levels _lev; //levels class
adambakerwa 25:230e4163cb6b 47
adambakerwa 42:0dad7c359fa5 48 Pos _pos; //_pos struct
adambakerwa 25:230e4163cb6b 49
adambakerwa 25:230e4163cb6b 50
adambakerwa 42:0dad7c359fa5 51 int _gameover; /**< _gameover flag (0 when alive, 1 onnce died) */
adambakerwa 42:0dad7c359fa5 52 int _level; /**< what level blockhead is on */
adambakerwa 42:0dad7c359fa5 53 int _highscore; /**< highest level reached */
adambakerwa 25:230e4163cb6b 54 };
adambakerwa 25:230e4163cb6b 55
adambakerwa 25:230e4163cb6b 56 #endif