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.
Dependencies: mbed
Fork of el17dg by
game/hud.h@28:35af3843de8f, 2019-04-10 (annotated)
- 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?
User | Revision | Line number | New 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 |