201377806 ZiWei Liu

Dependencies:   mbed

Committer:
alexliu0812
Date:
Mon May 18 01:54:50 2020 +0000
Revision:
7:ec0d9796dccd
Parent:
4:aada5ebb075d
Child:
8:207fc0d404c7
done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:b7f1f47bb26a 1 /*
eencae 0:b7f1f47bb26a 2 ELEC2645 Embedded Systems Project
eencae 0:b7f1f47bb26a 3 School of Electronic & Electrical Engineering
eencae 0:b7f1f47bb26a 4 University of Leeds
eencae 0:b7f1f47bb26a 5 2019/20
eencae 0:b7f1f47bb26a 6
alexliu0812 7:ec0d9796dccd 7 Name: ZiWei Liu ,Alex
alexliu0812 1:11854f815cc8 8 Username: el19z2l
alexliu0812 1:11854f815cc8 9 Student ID Number: 201377806
alexliu0812 1:11854f815cc8 10 Date: 2020.5.20
eencae 0:b7f1f47bb26a 11 */
eencae 0:b7f1f47bb26a 12
eencae 0:b7f1f47bb26a 13 // includes
eencae 0:b7f1f47bb26a 14 #include "mbed.h"
eencae 0:b7f1f47bb26a 15 #include "Gamepad.h"
eencae 0:b7f1f47bb26a 16 #include "N5110.h"
alexliu0812 2:d621a4cbe0c2 17 #include "DodgeEngine.h"
alexliu0812 2:d621a4cbe0c2 18 #include "Character.h"
alexliu0812 2:d621a4cbe0c2 19 #include "Block.h"
alexliu0812 3:e53e289cd4ba 20
alexliu0812 4:aada5ebb075d 21 #define x1up 80
alexliu0812 3:e53e289cd4ba 22 #define y1up 1
alexliu0812 4:aada5ebb075d 23 #define x1down 80
alexliu0812 4:aada5ebb075d 24 #define y1down 15
alexliu0812 4:aada5ebb075d 25 #define x2up 80
alexliu0812 4:aada5ebb075d 26 #define y2up 35
alexliu0812 4:aada5ebb075d 27 #define x2down 80
alexliu0812 4:aada5ebb075d 28 #define y2down 46
alexliu0812 4:aada5ebb075d 29 #define manx 15
alexliu0812 4:aada5ebb075d 30 #define many 1
eencae 0:b7f1f47bb26a 31
alexliu0812 1:11854f815cc8 32 //objects
eencae 0:b7f1f47bb26a 33 Gamepad pad;
eencae 0:b7f1f47bb26a 34 N5110 lcd;
alexliu0812 2:d621a4cbe0c2 35 DodgeEngine dodge;
alexliu0812 2:d621a4cbe0c2 36 Character character;
alexliu0812 2:d621a4cbe0c2 37 Block block;
eencae 0:b7f1f47bb26a 38
alexliu0812 1:11854f815cc8 39 //prototypes
alexliu0812 1:11854f815cc8 40 void init();
alexliu0812 1:11854f815cc8 41 void welcome();
alexliu0812 2:d621a4cbe0c2 42 void refreshing();
alexliu0812 1:11854f815cc8 43
eencae 0:b7f1f47bb26a 44 int main()
eencae 0:b7f1f47bb26a 45 {
alexliu0812 1:11854f815cc8 46 int fps=6;
eencae 0:b7f1f47bb26a 47
alexliu0812 1:11854f815cc8 48 //initialize
alexliu0812 1:11854f815cc8 49 init();
alexliu0812 1:11854f815cc8 50 welcome();
alexliu0812 2:d621a4cbe0c2 51
alexliu0812 2:d621a4cbe0c2 52
alexliu0812 2:d621a4cbe0c2 53 pad.leds_off();
alexliu0812 2:d621a4cbe0c2 54 wait(1.0f/fps);
alexliu0812 2:d621a4cbe0c2 55
alexliu0812 4:aada5ebb075d 56 dodge.init(x1up, y1up, x1down, y1down, x2up, y2up,x2down,y2down, manx, many);
alexliu0812 2:d621a4cbe0c2 57 while (1) {
alexliu0812 2:d621a4cbe0c2 58 refreshing();
alexliu0812 2:d621a4cbe0c2 59 wait(1.0f/fps);
alexliu0812 2:d621a4cbe0c2 60 }
alexliu0812 1:11854f815cc8 61 }
alexliu0812 1:11854f815cc8 62
alexliu0812 1:11854f815cc8 63
alexliu0812 1:11854f815cc8 64 void init(){
alexliu0812 1:11854f815cc8 65
alexliu0812 1:11854f815cc8 66 lcd.init();
alexliu0812 1:11854f815cc8 67 pad.init();
alexliu0812 1:11854f815cc8 68
eencae 0:b7f1f47bb26a 69 }
eencae 0:b7f1f47bb26a 70
alexliu0812 1:11854f815cc8 71 void welcome(){
alexliu0812 1:11854f815cc8 72 //the start menu
alexliu0812 1:11854f815cc8 73 while(pad.A_pressed()==false){
alexliu0812 1:11854f815cc8 74 lcd.printString(" Dodging!! " ,0,2);
alexliu0812 1:11854f815cc8 75 lcd.printString(" Press A ",0,4);
alexliu0812 1:11854f815cc8 76 lcd.refresh();
alexliu0812 1:11854f815cc8 77 }
alexliu0812 1:11854f815cc8 78
alexliu0812 1:11854f815cc8 79 //the instruction menu
alexliu0812 1:11854f815cc8 80 lcd.clear();
alexliu0812 1:11854f815cc8 81 lcd.printString(" Instructions ",0,0);
alexliu0812 4:aada5ebb075d 82 lcd.printString("Dodge the walls ",0,1);
alexliu0812 4:aada5ebb075d 83 lcd.printString("Hold A to move ",0,2);
alexliu0812 4:aada5ebb075d 84 lcd.printString(" 4 levels! ",0,3);
alexliu0812 1:11854f815cc8 85 lcd.printString(" Good luck! ",0,4);
alexliu0812 4:aada5ebb075d 86 lcd.printString("Press start",0,5);
alexliu0812 1:11854f815cc8 87 lcd.refresh();
alexliu0812 1:11854f815cc8 88
alexliu0812 1:11854f815cc8 89 while(pad.start_pressed()==false){
alexliu0812 1:11854f815cc8 90 pad.led(1,1);
alexliu0812 1:11854f815cc8 91 pad.led(3,1);
alexliu0812 1:11854f815cc8 92 pad.led(4,1);
alexliu0812 1:11854f815cc8 93 pad.led(6,1);
alexliu0812 1:11854f815cc8 94 }
alexliu0812 1:11854f815cc8 95 }
alexliu0812 2:d621a4cbe0c2 96
alexliu0812 2:d621a4cbe0c2 97 void refreshing(){
alexliu0812 2:d621a4cbe0c2 98
alexliu0812 2:d621a4cbe0c2 99 lcd.clear();
alexliu0812 4:aada5ebb075d 100 dodge.dodgeupdate(lcd,pad,x1up, y1up, x1down, y1down, x2up, y2up,x2down,y2down,manx, many);
alexliu0812 2:d621a4cbe0c2 101 dodge.charactermove(lcd,pad);
alexliu0812 2:d621a4cbe0c2 102 dodge.blockmove(lcd);
alexliu0812 2:d621a4cbe0c2 103 lcd.refresh();
alexliu0812 2:d621a4cbe0c2 104
alexliu0812 2:d621a4cbe0c2 105 }