Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Tue Apr 16 21:16:33 2019 +0000
Revision:
30:d454d0cb72bc
Parent:
29:579e00b7f118
Child:
31:becb8f6bf7b7
Hace modified some comments. Have added a feature of a force shield. Updated the tutorial, Have finished the settings mode.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Noximilien 21:0eb394495b8a 1 #ifndef HUD_H
Noximilien 21:0eb394495b8a 2 #define HUD_H
Noximilien 21:0eb394495b8a 3
Noximilien 26:676874c42883 4 #include "game.h"
Noximilien 21:0eb394495b8a 5
Noximilien 29:579e00b7f118 6 /**Hud Class
Noximilien 29:579e00b7f118 7 * @brief A library for describing the player's heads up display(hud).
Noximilien 29:579e00b7f118 8 * @author Dmitrijs Griskovs
Noximilien 29:579e00b7f118 9 * @date 15/04/2019
Noximilien 29:579e00b7f118 10 */
Noximilien 26:676874c42883 11 class Hud {
Noximilien 27:f05f4e738ba9 12
Noximilien 26:676874c42883 13 public:
Noximilien 29:579e00b7f118 14 /** @brief Draws an in-game score on the screen during the gameplay. */
Noximilien 27:f05f4e738ba9 15 void drawScore(){
Noximilien 26:676874c42883 16 char buffer[16];
Noximilien 26:676874c42883 17 sprintf(buffer," Score: %i",game_score);
Noximilien 26:676874c42883 18 lcd.printString(buffer,0,0);
Noximilien 26:676874c42883 19 }
Noximilien 29:579e00b7f118 20 /**@brief Displays the highest score reached in the main menu. */
Noximilien 28:35af3843de8f 21 void drawHighScore(){
Noximilien 27:f05f4e738ba9 22 if (high_score < game_score){
Noximilien 27:f05f4e738ba9 23 high_score = game_score;
Noximilien 27:f05f4e738ba9 24 }
Noximilien 28:35af3843de8f 25 char buffer[16];
Noximilien 28:35af3843de8f 26 sprintf(buffer,"High Score %i",high_score);
Noximilien 28:35af3843de8f 27 lcd.printString(buffer,0,0);
Noximilien 28:35af3843de8f 28 }
Noximilien 27:f05f4e738ba9 29
Noximilien 30:d454d0cb72bc 30 /** @brief Mointors, updates and shows the player's lives.
Noximilien 29:579e00b7f118 31 * @details Checks the palyer's life value and lights the LEDs on/off accordingly to
Noximilien 29:579e00b7f118 32 * how many lifes are left. green = 3, yellow = 2 and red = 1.
Noximilien 29:579e00b7f118 33 */
Noximilien 27:f05f4e738ba9 34 void displayLifes(){
Noximilien 27:f05f4e738ba9 35 //printf("displayLifes:: %i\n", player_lifes);
Noximilien 27:f05f4e738ba9 36 if (player_lifes == 3){
Noximilien 28:35af3843de8f 37 playerHasThreeLives();
Noximilien 27:f05f4e738ba9 38 }
Noximilien 27:f05f4e738ba9 39 else if (player_lifes == 2){
Noximilien 28:35af3843de8f 40 playerHasTwoLives();
Noximilien 27:f05f4e738ba9 41 }
Noximilien 27:f05f4e738ba9 42 else if (player_lifes == 1){
Noximilien 28:35af3843de8f 43 playerHasOneLife();
Noximilien 27:f05f4e738ba9 44 }
Noximilien 27:f05f4e738ba9 45 else {
Noximilien 27:f05f4e738ba9 46 // all LEDs are flashing
Noximilien 27:f05f4e738ba9 47 gamepad.leds_off();
Noximilien 27:f05f4e738ba9 48 }
Noximilien 26:676874c42883 49 }
Noximilien 28:35af3843de8f 50 private:
Noximilien 28:35af3843de8f 51 void playerHasThreeLives(){
Noximilien 28:35af3843de8f 52 //turn all LEDs on
Noximilien 28:35af3843de8f 53 gamepad.leds_on();
Noximilien 28:35af3843de8f 54
Noximilien 28:35af3843de8f 55 }
Noximilien 28:35af3843de8f 56 void playerHasTwoLives(){
Noximilien 28:35af3843de8f 57 // only yelow and red are lit (total 4)
Noximilien 28:35af3843de8f 58 gamepad.led(6,0.0);
Noximilien 28:35af3843de8f 59 gamepad.led(3,0.0);
Noximilien 28:35af3843de8f 60
Noximilien 28:35af3843de8f 61 }
Noximilien 28:35af3843de8f 62 void playerHasOneLife(){
Noximilien 28:35af3843de8f 63 // red LED is lit and flashes.
Noximilien 28:35af3843de8f 64 gamepad.led(2,0.0);
Noximilien 28:35af3843de8f 65 gamepad.led(5,0.0);
Noximilien 28:35af3843de8f 66 gamepad.led(6,0.0);
Noximilien 28:35af3843de8f 67 if (red_led_flashing == 5){
Noximilien 28:35af3843de8f 68 gamepad.led(1,(float)red_led_state);
Noximilien 28:35af3843de8f 69 gamepad.led(4,(float)red_led_state);
Noximilien 28:35af3843de8f 70 gamepad.led(1,(float)!red_led_state);
Noximilien 28:35af3843de8f 71 gamepad.led(4,(float)!red_led_state);
Noximilien 28:35af3843de8f 72 red_led_flashing = 0;
Noximilien 28:35af3843de8f 73 red_led_state = !red_led_state;
Noximilien 28:35af3843de8f 74 }
Noximilien 28:35af3843de8f 75 red_led_flashing += 1;
Noximilien 28:35af3843de8f 76 }
Noximilien 26:676874c42883 77 };
Noximilien 21:0eb394495b8a 78
Noximilien 21:0eb394495b8a 79 #endif