Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
lib/GameEngine/GameEngine.h
- Committer:
- Kern_EL17KJTF
- Date:
- 2019-05-09
- Revision:
- 31:06713cdbba37
- Parent:
- 28:10937e02a0d6
- Child:
- 32:dca62ba807de
File content as of revision 31:06713cdbba37:
#ifndef GAMEENGINE_H #define GAMEENGINE_H #include "mbed.h" #include "N5110.h" #include "Gamepad.h" #include "Donkey.h" #include "Barrel.h" #include "Banana.h" #include "HighScores.h" /** GameEngine Class *@brief This class is running and contrling the main game functions. *@author Kern Fowler *@version 1.0 *@date May 2019 */ class GameEngine { public: /** GameEngine Constructor @brief Builds my default GameEngine constructor. @details This does not have any setup. */ GameEngine(); /** GameEngine Destructor @brief Builds my default GameEngine destructor. @details This does not have any setup. */ ~GameEngine(); // Mutators /** *@brief Controls the main game. *@param pad The Gamepad class is used. *@param lcd The N5110 class is used. *@param barrel The Barrel class is used. *@param banana The Banana class is used. *@param dky The Donkey class is used. *@details Runs the main functions of the game in correct order. *@code void GameEngine::gameengine_run(Gamepad &pad, N5110 &lcd, Barrel &barrel, Banana &banana, Donkey &dky) { wait_ms(250); // Sets key variables back to default value when game first ran. barrel_x = 0; barrel_y = 0; banana_x = 0; banana_y = 0; running = 1; banana_time = 0; barrel_time = 0; score = 0; while (running == 1) { // Main game loop, continues until game over occurs. //printf("Game State"); lcd.clear(); dky.donkeykong_movement(pad, lcd); // Calls Donkey Kong model section of game. barrel.barrel_drop(pad, lcd, dky); // Calls Barrel model section of game. banana.banana_drop(pad, lcd, barrel, dky); // Calls Banana model section of game. //printf("state %d", running); lcd.refresh(); // Reloads screen on every cycle, controlled by fps. Default set to 24. wait_ms(1.0f/24); } } @endcode */ void gameengine_run(Gamepad &pad, N5110 &lcd, Barrel &barrel, Banana &banana, Donkey &dky); /** *@brief Shows game over screen. *@param pad The Gamepad class is used. *@param lcd The N5110 class is used. *@param banana The Banana class is used. *@param high The HighScores class is used. *@details Prints the gameover screen. Prints various text, including total player score. *@code void GameEngine::gameengine_score(Gamepad &pad, N5110 &lcd, Banana &banana, HighScores &high) { lcd.clear(); lcd.printString("Game Over!",14,0); lcd.printString("Score:",0,2); char buffer[14]; // Shows final score on screen. sprintf(buffer,"%i",score); lcd.printString(buffer,40,2); high.highscores_new(pad, lcd, banana); // Checks to see if new high score is obtained. lcd.refresh(); wait(5); } @endcode */ void gameengine_score(Gamepad &pad, N5110 &lcd, Banana &banana, HighScores &high); }; #endif