runner

Dependencies:   mbed

Committer:
kamtas
Date:
Thu May 09 15:20:53 2019 +0000
Revision:
7:821b68fc40fb
Parent:
6:ee273baff27c
Final Submission. I have read and agreed with Statement of Academic Integrity

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kamtas 2:1900a4144537 1 #ifndef GAMEENGINE_H
kamtas 2:1900a4144537 2 #define GAMEENGINE_H
kamtas 2:1900a4144537 3
kamtas 2:1900a4144537 4 #include "mbed.h"
kamtas 2:1900a4144537 5 #include "N5110.h"
kamtas 2:1900a4144537 6 #include "Gamepad.h"
kamtas 2:1900a4144537 7 #include "Runner.h"
kamtas 3:59e67155e2dd 8 #include "Obstacle.h"
kamtas 2:1900a4144537 9
kamtas 5:df0bf821b4cc 10 #define START 20
kamtas 5:df0bf821b4cc 11
kamtas 6:ee273baff27c 12 /** GameEngine class
kamtas 6:ee273baff27c 13 * @brief main game engine initialises all objects, reads user input and updates the game and screen
kamtas 6:ee273baff27c 14 * @author Kamil Zabraniak
kamtas 6:ee273baff27c 15 * @date May, 2019
kamtas 6:ee273baff27c 16 */
kamtas 2:1900a4144537 17 class GameEngine
kamtas 2:1900a4144537 18 {
kamtas 2:1900a4144537 19
kamtas 2:1900a4144537 20 public:
kamtas 6:ee273baff27c 21 /** constructor */
kamtas 2:1900a4144537 22 GameEngine();
kamtas 6:ee273baff27c 23 /** deconstructor */
kamtas 2:1900a4144537 24 ~GameEngine();
kamtas 2:1900a4144537 25
kamtas 6:ee273baff27c 26 /** initialise runner and obstacle parameters
kamtas 6:ee273baff27c 27 * @param runner width (int)
kamtas 6:ee273baff27c 28 * @param runner height (int)
kamtas 6:ee273baff27c 29 * @param obstacle width (int)
kamtas 6:ee273baff27c 30 * @param obstacle height (int)
kamtas 6:ee273baff27c 31 */
kamtas 3:59e67155e2dd 32 void init(int runner_width,int runner_height, int obstacle_width, int obstacle_height);
kamtas 6:ee273baff27c 33
kamtas 6:ee273baff27c 34 /** reads user input
kamtas 6:ee273baff27c 35 * @param check if button y is pressed (Gamepad)
kamtas 6:ee273baff27c 36 */
kamtas 2:1900a4144537 37 void read_input(Gamepad &pad);
kamtas 6:ee273baff27c 38
kamtas 6:ee273baff27c 39 /** updates the positions of the obstacle and the runner and updates the score
kamtas 6:ee273baff27c 40 * @param check if obstacle has passed the runner (Gamepad)
kamtas 6:ee273baff27c 41 * @param check if obstacle has collided with runner (Gamepad)
kamtas 6:ee273baff27c 42 */
kamtas 2:1900a4144537 43 void update(Gamepad &pad);
kamtas 6:ee273baff27c 44
kamtas 7:821b68fc40fb 45 /** renders all objects on screen
kamtas 6:ee273baff27c 46 * @param prints scores on screen (N5110)
kamtas 6:ee273baff27c 47 * @param draws the runner (N5110)
kamtas 7:821b68fc40fb 48 * @param draws the obstacle (N5110)
kamtas 6:ee273baff27c 49 */
kamtas 2:1900a4144537 50 void draw(N5110 &lcd);
kamtas 2:1900a4144537 51
kamtas 2:1900a4144537 52 private:
kamtas 5:df0bf821b4cc 53
kamtas 5:df0bf821b4cc 54 void check_obstacle_collisions(Gamepad &pad);
kamtas 5:df0bf821b4cc 55 void check_pass(Gamepad &pad);
kamtas 5:df0bf821b4cc 56 void print_scores(N5110 &lcd);
kamtas 2:1900a4144537 57
kamtas 2:1900a4144537 58 Runner _r;
kamtas 3:59e67155e2dd 59 Obstacle _o1;
kamtas 2:1900a4144537 60
kamtas 2:1900a4144537 61 int _runner_width;
kamtas 2:1900a4144537 62 int _runner_height;
kamtas 3:59e67155e2dd 63 int _obstacle_width;
kamtas 3:59e67155e2dd 64 int _obstacle_height;
kamtas 2:1900a4144537 65
kamtas 2:1900a4144537 66 int _rx;
kamtas 3:59e67155e2dd 67 int _o1y;
kamtas 2:1900a4144537 68
kamtas 3:59e67155e2dd 69 bool _j;
kamtas 4:7fca66882a00 70 bool _ran;
kamtas 2:1900a4144537 71
kamtas 2:1900a4144537 72 };
kamtas 2:1900a4144537 73
kamtas 2:1900a4144537 74 #endif