ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Wed Apr 10 15:42:10 2019 +0000
Revision:
28:35af3843de8f
Parent:
27:f05f4e738ba9
Child:
29:579e00b7f118
Moved starSpawnDelay to stars.h. Made enemies move y-direction as the game score increase. Added more comments. Cleaned the code a bit. Changed struct to gameObject in the main.cpp. Made some functions less than 20 lines.

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 26:676874c42883 6 class Hud {
Noximilien 27:f05f4e738ba9 7
Noximilien 26:676874c42883 8 public:
Noximilien 27:f05f4e738ba9 9 /** Draws an in-game score on the screen.
Noximilien 27:f05f4e738ba9 10 */
Noximilien 27:f05f4e738ba9 11 void drawScore(){
Noximilien 26:676874c42883 12 char buffer[16];
Noximilien 26:676874c42883 13 sprintf(buffer," Score: %i",game_score);
Noximilien 26:676874c42883 14 lcd.printString(buffer,0,0);
Noximilien 26:676874c42883 15 }
Noximilien 26:676874c42883 16
Noximilien 28:35af3843de8f 17 void drawHighScore(){
Noximilien 27:f05f4e738ba9 18 if (high_score < game_score){
Noximilien 27:f05f4e738ba9 19 high_score = game_score;
Noximilien 27:f05f4e738ba9 20 }
Noximilien 28:35af3843de8f 21 //Displays the highest score reached.
Noximilien 28:35af3843de8f 22 char buffer[16];
Noximilien 28:35af3843de8f 23 sprintf(buffer,"High Score %i",high_score);
Noximilien 28:35af3843de8f 24 lcd.printString(buffer,0,0);
Noximilien 28:35af3843de8f 25 }
Noximilien 27:f05f4e738ba9 26
Noximilien 27:f05f4e738ba9 27 /** Cheks the palyer's life value and lights the LEDs on/off accordingly to
Noximilien 27:f05f4e738ba9 28 * how many lifes are left.
Noximilien 27:f05f4e738ba9 29 */
Noximilien 27:f05f4e738ba9 30 void displayLifes(){
Noximilien 27:f05f4e738ba9 31 //printf("displayLifes:: %i\n", player_lifes);
Noximilien 27:f05f4e738ba9 32 if (player_lifes == 3){
Noximilien 28:35af3843de8f 33 playerHasThreeLives();
Noximilien 27:f05f4e738ba9 34 }
Noximilien 27:f05f4e738ba9 35 else if (player_lifes == 2){
Noximilien 28:35af3843de8f 36 playerHasTwoLives();
Noximilien 27:f05f4e738ba9 37 }
Noximilien 27:f05f4e738ba9 38 else if (player_lifes == 1){
Noximilien 28:35af3843de8f 39 playerHasOneLife();
Noximilien 27:f05f4e738ba9 40 }
Noximilien 27:f05f4e738ba9 41 else {
Noximilien 27:f05f4e738ba9 42 // all LEDs are flashing
Noximilien 27:f05f4e738ba9 43 gamepad.leds_off();
Noximilien 27:f05f4e738ba9 44 }
Noximilien 26:676874c42883 45 }
Noximilien 28:35af3843de8f 46 private:
Noximilien 28:35af3843de8f 47 void playerHasThreeLives(){
Noximilien 28:35af3843de8f 48 //turn all LEDs on
Noximilien 28:35af3843de8f 49 gamepad.leds_on();
Noximilien 28:35af3843de8f 50
Noximilien 28:35af3843de8f 51 }
Noximilien 28:35af3843de8f 52 void playerHasTwoLives(){
Noximilien 28:35af3843de8f 53 // only yelow and red are lit (total 4)
Noximilien 28:35af3843de8f 54 gamepad.led(6,0.0);
Noximilien 28:35af3843de8f 55 gamepad.led(3,0.0);
Noximilien 28:35af3843de8f 56
Noximilien 28:35af3843de8f 57 }
Noximilien 28:35af3843de8f 58 void playerHasOneLife(){
Noximilien 28:35af3843de8f 59 // red LED is lit and flashes.
Noximilien 28:35af3843de8f 60 gamepad.led(2,0.0);
Noximilien 28:35af3843de8f 61 gamepad.led(5,0.0);
Noximilien 28:35af3843de8f 62 gamepad.led(6,0.0);
Noximilien 28:35af3843de8f 63 if (red_led_flashing == 5){
Noximilien 28:35af3843de8f 64 gamepad.led(1,(float)red_led_state);
Noximilien 28:35af3843de8f 65 gamepad.led(4,(float)red_led_state);
Noximilien 28:35af3843de8f 66 gamepad.led(1,(float)!red_led_state);
Noximilien 28:35af3843de8f 67 gamepad.led(4,(float)!red_led_state);
Noximilien 28:35af3843de8f 68 red_led_flashing = 0;
Noximilien 28:35af3843de8f 69 red_led_state = !red_led_state;
Noximilien 28:35af3843de8f 70 }
Noximilien 28:35af3843de8f 71 red_led_flashing += 1;
Noximilien 28:35af3843de8f 72
Noximilien 28:35af3843de8f 73 }
Noximilien 26:676874c42883 74 };
Noximilien 21:0eb394495b8a 75
Noximilien 21:0eb394495b8a 76 #endif