ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Mon Apr 01 23:55:24 2019 +0000
Revision:
19:4789cb4ca550
Parent:
16:8384e9a480ef
Child:
21:7a7a115d910d
Timer added, there is now a 60 second time limit to complete level.; ; Game over screen added, will appear if lives are zero or timer runs out

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17arm 0:fe19852199d2 1 #include "mbed.h"
el17arm 0:fe19852199d2 2 #include "N5110.h"
el17arm 0:fe19852199d2 3 #include "Gamepad.h"
el17arm 0:fe19852199d2 4 #include "Minerengine.h"
el17arm 2:725c213b2396 5 #include "Levelengine.h"
el17arm 4:b92da6a09c8b 6 #include "Gameengine.h"
el17arm 0:fe19852199d2 7
el17arm 14:dc3524d11921 8 Gameengine game;
el17arm 0:fe19852199d2 9 Gamepad pad;
el17arm 0:fe19852199d2 10 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el17arm 0:fe19852199d2 11 AnalogIn pot0(PTB2);
el17arm 0:fe19852199d2 12
el17arm 0:fe19852199d2 13 void contrast();
el17arm 0:fe19852199d2 14 void init();
el17arm 0:fe19852199d2 15 void start_screen();
el17arm 15:2bda80896a84 16 void render();
el17arm 19:4789cb4ca550 17 void restart();
el17arm 0:fe19852199d2 18
el17arm 0:fe19852199d2 19 int main()
el17arm 0:fe19852199d2 20 {
el17arm 0:fe19852199d2 21 init();
el17arm 2:725c213b2396 22 start_screen();
el17arm 0:fe19852199d2 23
el17arm 0:fe19852199d2 24 while (1) {
el17arm 19:4789cb4ca550 25
el17arm 0:fe19852199d2 26 contrast();
el17arm 15:2bda80896a84 27 render();
el17arm 15:2bda80896a84 28 game.update(lcd, pad);
el17arm 19:4789cb4ca550 29 restart();
el17arm 9:f16581e1eba9 30 wait(0.1);
el17arm 0:fe19852199d2 31 }
el17arm 0:fe19852199d2 32
el17arm 0:fe19852199d2 33 }
el17arm 0:fe19852199d2 34
el17arm 0:fe19852199d2 35 void init()
el17arm 0:fe19852199d2 36 {
el17arm 0:fe19852199d2 37 lcd.init();
el17arm 0:fe19852199d2 38 lcd.normalMode(); // normal colour mode
el17arm 0:fe19852199d2 39 lcd.setBrightness(0.5); // put LED backlight on 50%
el17arm 0:fe19852199d2 40 lcd.refresh();
el17arm 0:fe19852199d2 41 pad.init();
el17arm 0:fe19852199d2 42 pad.leds_off();
el17arm 3:d27ee2440829 43 contrast();
el17arm 15:2bda80896a84 44 game.game_init();
el17arm 15:2bda80896a84 45 }
el17arm 2:725c213b2396 46
el17arm 15:2bda80896a84 47 void render()
el17arm 15:2bda80896a84 48 {
el17arm 15:2bda80896a84 49 game.draw(lcd);
el17arm 0:fe19852199d2 50 }
el17arm 0:fe19852199d2 51
el17arm 0:fe19852199d2 52 void contrast()
el17arm 0:fe19852199d2 53 {
el17arm 0:fe19852199d2 54 lcd.refresh();
el17arm 0:fe19852199d2 55 float con = pot0.read();
el17arm 0:fe19852199d2 56 lcd.setContrast(con);
el17arm 1:813ba5341985 57 lcd.clear();
el17arm 0:fe19852199d2 58 }
el17arm 0:fe19852199d2 59
el17arm 0:fe19852199d2 60 void start_screen()
el17arm 19:4789cb4ca550 61 {
el17arm 3:d27ee2440829 62 lcd.printString("*MANIC MILNER!*",0,1);
el17arm 3:d27ee2440829 63 lcd.printString(" Press start! ",0,4);
el17arm 3:d27ee2440829 64 lcd.refresh();
el17arm 0:fe19852199d2 65 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
el17arm 0:fe19852199d2 66 pad.leds_on();
el17arm 0:fe19852199d2 67 wait(0.1);
el17arm 0:fe19852199d2 68 pad.leds_off();
el17arm 0:fe19852199d2 69 wait(0.1);
el17arm 0:fe19852199d2 70 }
el17arm 19:4789cb4ca550 71 }
el17arm 19:4789cb4ca550 72
el17arm 19:4789cb4ca550 73 void restart()
el17arm 19:4789cb4ca550 74 {
el17arm 19:4789cb4ca550 75 if (game.game_over() == true) {
el17arm 19:4789cb4ca550 76 lcd.clear();
el17arm 19:4789cb4ca550 77 lcd.printString("Game Over! ",16,1);
el17arm 19:4789cb4ca550 78 lcd.printString("Press reset to try again! ",0,3);
el17arm 19:4789cb4ca550 79 lcd.printString("try again! ",16,4);
el17arm 19:4789cb4ca550 80 wait(1);
el17arm 19:4789cb4ca550 81 }
el17arm 3:d27ee2440829 82 }