201377806 ZiWei Liu

Dependencies:   mbed

Committer:
alexliu0812
Date:
Fri May 15 13:30:09 2020 +0000
Revision:
3:e53e289cd4ba
Parent:
2:d621a4cbe0c2
Child:
4:aada5ebb075d
zhong yu neng pao le;

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 1:11854f815cc8 7 Name: ZiWei Liu
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 3:e53e289cd4ba 21 #define x1up 50
alexliu0812 3:e53e289cd4ba 22 #define y1up 1
alexliu0812 3:e53e289cd4ba 23 #define x1down 50
alexliu0812 3:e53e289cd4ba 24 #define y1down 20
alexliu0812 3:e53e289cd4ba 25 #define x2up 50
alexliu0812 3:e53e289cd4ba 26 #define y2up 40
alexliu0812 3:e53e289cd4ba 27 #define x2down 50
alexliu0812 3:e53e289cd4ba 28 #define y2down 84
eencae 0:b7f1f47bb26a 29
alexliu0812 1:11854f815cc8 30 //objects
eencae 0:b7f1f47bb26a 31 Gamepad pad;
eencae 0:b7f1f47bb26a 32 N5110 lcd;
alexliu0812 2:d621a4cbe0c2 33 DodgeEngine dodge;
alexliu0812 2:d621a4cbe0c2 34 Character character;
alexliu0812 2:d621a4cbe0c2 35 Block block;
eencae 0:b7f1f47bb26a 36
alexliu0812 1:11854f815cc8 37 //prototypes
alexliu0812 1:11854f815cc8 38 void init();
alexliu0812 1:11854f815cc8 39 void welcome();
alexliu0812 2:d621a4cbe0c2 40 void refreshing();
alexliu0812 1:11854f815cc8 41
eencae 0:b7f1f47bb26a 42 int main()
eencae 0:b7f1f47bb26a 43 {
alexliu0812 1:11854f815cc8 44 int fps=6;
eencae 0:b7f1f47bb26a 45
alexliu0812 1:11854f815cc8 46 //initialize
alexliu0812 1:11854f815cc8 47 init();
alexliu0812 1:11854f815cc8 48 welcome();
alexliu0812 2:d621a4cbe0c2 49
alexliu0812 2:d621a4cbe0c2 50
alexliu0812 2:d621a4cbe0c2 51 pad.leds_off();
alexliu0812 2:d621a4cbe0c2 52 refreshing();
alexliu0812 2:d621a4cbe0c2 53 wait(1.0f/fps);
alexliu0812 2:d621a4cbe0c2 54
alexliu0812 3:e53e289cd4ba 55 dodge.init(x1up, y1up, x1down, y1down, x2up, y2up,x2down,y2down);
alexliu0812 2:d621a4cbe0c2 56 while (1) {
alexliu0812 2:d621a4cbe0c2 57 dodge.dodgeupdate();
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 1:11854f815cc8 82 lcd.printString("Dodge the ball ",0,1);
alexliu0812 1:11854f815cc8 83 lcd.printString(" 3 chance! ",0,2);
alexliu0812 1:11854f815cc8 84 lcd.printString(" Good luck! ",0,4);
alexliu0812 1:11854f815cc8 85 lcd.printString("Press to start",0,5);
alexliu0812 1:11854f815cc8 86 lcd.refresh();
alexliu0812 1:11854f815cc8 87
alexliu0812 1:11854f815cc8 88 while(pad.start_pressed()==false){
alexliu0812 1:11854f815cc8 89 pad.led(1,1);
alexliu0812 1:11854f815cc8 90 pad.led(3,1);
alexliu0812 1:11854f815cc8 91 pad.led(4,1);
alexliu0812 1:11854f815cc8 92 pad.led(6,1);
alexliu0812 1:11854f815cc8 93 }
alexliu0812 1:11854f815cc8 94 }
alexliu0812 2:d621a4cbe0c2 95
alexliu0812 2:d621a4cbe0c2 96 void refreshing(){
alexliu0812 2:d621a4cbe0c2 97
alexliu0812 2:d621a4cbe0c2 98 lcd.clear();
alexliu0812 2:d621a4cbe0c2 99 dodge.charactermove(lcd,pad);
alexliu0812 2:d621a4cbe0c2 100 dodge.blockmove(lcd);
alexliu0812 2:d621a4cbe0c2 101 lcd.refresh();
alexliu0812 2:d621a4cbe0c2 102
alexliu0812 2:d621a4cbe0c2 103 }