Kern Fowler / Mbed 2 deprecated Donkey_Kong_Game

Dependencies:   mbed

Committer:
Kern_EL17KJTF
Date:
Thu May 09 01:40:45 2019 +0000
Revision:
31:06713cdbba37
Parent:
28:10937e02a0d6
Child:
32:dca62ba807de
Documentation - HighScores Added.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kern_EL17KJTF 10:28575a6eaa13 1 #ifndef GAMEENGINE_H
Kern_EL17KJTF 10:28575a6eaa13 2 #define GAMEENGINE_H
Kern_EL17KJTF 10:28575a6eaa13 3
Kern_EL17KJTF 10:28575a6eaa13 4 #include "mbed.h"
Kern_EL17KJTF 10:28575a6eaa13 5 #include "N5110.h"
Kern_EL17KJTF 10:28575a6eaa13 6 #include "Gamepad.h"
Kern_EL17KJTF 12:50a7abf21f18 7 #include "Donkey.h"
Kern_EL17KJTF 10:28575a6eaa13 8 #include "Barrel.h"
Kern_EL17KJTF 10:28575a6eaa13 9 #include "Banana.h"
Kern_EL17KJTF 31:06713cdbba37 10 #include "HighScores.h"
Kern_EL17KJTF 12:50a7abf21f18 11
Kern_EL17KJTF 21:1f44f5493c0d 12 /** GameEngine Class
Kern_EL17KJTF 28:10937e02a0d6 13 *@brief This class is running and contrling the main game functions.
Kern_EL17KJTF 21:1f44f5493c0d 14 *@author Kern Fowler
Kern_EL17KJTF 21:1f44f5493c0d 15 *@version 1.0
Kern_EL17KJTF 21:1f44f5493c0d 16 *@date May 2019
Kern_EL17KJTF 21:1f44f5493c0d 17 */
Kern_EL17KJTF 10:28575a6eaa13 18
Kern_EL17KJTF 21:1f44f5493c0d 19 class GameEngine {
Kern_EL17KJTF 10:28575a6eaa13 20
Kern_EL17KJTF 21:1f44f5493c0d 21 public:
Kern_EL17KJTF 21:1f44f5493c0d 22 /** GameEngine Constructor
Kern_EL17KJTF 21:1f44f5493c0d 23 @brief Builds my default GameEngine constructor.
Kern_EL17KJTF 21:1f44f5493c0d 24 @details This does not have any setup.
Kern_EL17KJTF 21:1f44f5493c0d 25 */
Kern_EL17KJTF 21:1f44f5493c0d 26 GameEngine();
Kern_EL17KJTF 21:1f44f5493c0d 27 /** GameEngine Destructor
Kern_EL17KJTF 21:1f44f5493c0d 28 @brief Builds my default GameEngine destructor.
Kern_EL17KJTF 21:1f44f5493c0d 29 @details This does not have any setup.
Kern_EL17KJTF 21:1f44f5493c0d 30 */
Kern_EL17KJTF 21:1f44f5493c0d 31 ~GameEngine();
Kern_EL17KJTF 21:1f44f5493c0d 32 // Mutators
Kern_EL17KJTF 10:28575a6eaa13 33
Kern_EL17KJTF 21:1f44f5493c0d 34 /**
Kern_EL17KJTF 21:1f44f5493c0d 35 *@brief Controls the main game.
Kern_EL17KJTF 21:1f44f5493c0d 36 *@param pad The Gamepad class is used.
Kern_EL17KJTF 21:1f44f5493c0d 37 *@param lcd The N5110 class is used.
Kern_EL17KJTF 21:1f44f5493c0d 38 *@param barrel The Barrel class is used.
Kern_EL17KJTF 21:1f44f5493c0d 39 *@param banana The Banana class is used.
Kern_EL17KJTF 21:1f44f5493c0d 40 *@param dky The Donkey class is used.
Kern_EL17KJTF 21:1f44f5493c0d 41 *@details Runs the main functions of the game in correct order.
Kern_EL17KJTF 28:10937e02a0d6 42 *@code
Kern_EL17KJTF 28:10937e02a0d6 43 void GameEngine::gameengine_run(Gamepad &pad, N5110 &lcd, Barrel &barrel, Banana &banana, Donkey &dky) {
Kern_EL17KJTF 28:10937e02a0d6 44 wait_ms(250);
Kern_EL17KJTF 28:10937e02a0d6 45 // Sets key variables back to default value when game first ran.
Kern_EL17KJTF 28:10937e02a0d6 46 barrel_x = 0;
Kern_EL17KJTF 28:10937e02a0d6 47 barrel_y = 0;
Kern_EL17KJTF 28:10937e02a0d6 48 banana_x = 0;
Kern_EL17KJTF 28:10937e02a0d6 49 banana_y = 0;
Kern_EL17KJTF 28:10937e02a0d6 50 running = 1;
Kern_EL17KJTF 28:10937e02a0d6 51 banana_time = 0;
Kern_EL17KJTF 28:10937e02a0d6 52 barrel_time = 0;
Kern_EL17KJTF 28:10937e02a0d6 53 score = 0;
Kern_EL17KJTF 28:10937e02a0d6 54 while (running == 1) { // Main game loop, continues until game over occurs.
Kern_EL17KJTF 28:10937e02a0d6 55 //printf("Game State");
Kern_EL17KJTF 28:10937e02a0d6 56 lcd.clear();
Kern_EL17KJTF 28:10937e02a0d6 57 dky.donkeykong_movement(pad, lcd); // Calls Donkey Kong model section of game.
Kern_EL17KJTF 28:10937e02a0d6 58 barrel.barrel_drop(pad, lcd, dky); // Calls Barrel model section of game.
Kern_EL17KJTF 28:10937e02a0d6 59 banana.banana_drop(pad, lcd, barrel, dky); // Calls Banana model section of game.
Kern_EL17KJTF 28:10937e02a0d6 60 //printf("state %d", running);
Kern_EL17KJTF 28:10937e02a0d6 61 lcd.refresh(); // Reloads screen on every cycle, controlled by fps. Default set to 24.
Kern_EL17KJTF 28:10937e02a0d6 62 wait_ms(1.0f/24);
Kern_EL17KJTF 28:10937e02a0d6 63 }
Kern_EL17KJTF 28:10937e02a0d6 64 }
Kern_EL17KJTF 28:10937e02a0d6 65 @endcode
Kern_EL17KJTF 21:1f44f5493c0d 66 */
Kern_EL17KJTF 21:1f44f5493c0d 67 void gameengine_run(Gamepad &pad, N5110 &lcd, Barrel &barrel, Banana &banana, Donkey &dky);
Kern_EL17KJTF 21:1f44f5493c0d 68 /**
Kern_EL17KJTF 21:1f44f5493c0d 69 *@brief Shows game over screen.
Kern_EL17KJTF 21:1f44f5493c0d 70 *@param pad The Gamepad class is used.
Kern_EL17KJTF 21:1f44f5493c0d 71 *@param lcd The N5110 class is used.
Kern_EL17KJTF 21:1f44f5493c0d 72 *@param banana The Banana class is used.
Kern_EL17KJTF 31:06713cdbba37 73 *@param high The HighScores class is used.
Kern_EL17KJTF 21:1f44f5493c0d 74 *@details Prints the gameover screen. Prints various text, including total player score.
Kern_EL17KJTF 28:10937e02a0d6 75 *@code
Kern_EL17KJTF 31:06713cdbba37 76 void GameEngine::gameengine_score(Gamepad &pad, N5110 &lcd, Banana &banana, HighScores &high) {
Kern_EL17KJTF 28:10937e02a0d6 77 lcd.clear();
Kern_EL17KJTF 28:10937e02a0d6 78 lcd.printString("Game Over!",14,0);
Kern_EL17KJTF 28:10937e02a0d6 79 lcd.printString("Score:",0,2);
Kern_EL17KJTF 28:10937e02a0d6 80 char buffer[14]; // Shows final score on screen.
Kern_EL17KJTF 28:10937e02a0d6 81 sprintf(buffer,"%i",score);
Kern_EL17KJTF 28:10937e02a0d6 82 lcd.printString(buffer,40,2);
Kern_EL17KJTF 31:06713cdbba37 83 high.highscores_new(pad, lcd, banana); // Checks to see if new high score is obtained.
Kern_EL17KJTF 28:10937e02a0d6 84 lcd.refresh();
Kern_EL17KJTF 28:10937e02a0d6 85 wait(5);
Kern_EL17KJTF 28:10937e02a0d6 86 }
Kern_EL17KJTF 28:10937e02a0d6 87 @endcode
Kern_EL17KJTF 21:1f44f5493c0d 88 */
Kern_EL17KJTF 31:06713cdbba37 89 void gameengine_score(Gamepad &pad, N5110 &lcd, Banana &banana, HighScores &high);
Kern_EL17KJTF 10:28575a6eaa13 90 };
Kern_EL17KJTF 10:28575a6eaa13 91
Kern_EL17KJTF 10:28575a6eaa13 92 #endif