Li Ruofan 201199450

Dependencies:   mbed Gamepad Joystick

Committer:
DannyLee
Date:
Sat May 16 17:26:10 2020 +0000
Revision:
8:b4a2954dd74f
Parent:
6:cbd9e1f26a10
Debugging

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DannyLee 5:e3a9f0548922 1 #include "homepage.h"
DannyLee 5:e3a9f0548922 2
DannyLee 8:b4a2954dd74f 3 Homepage::Homepage(){
DannyLee 6:cbd9e1f26a10 4
DannyLee 5:e3a9f0548922 5 }
DannyLee 5:e3a9f0548922 6
DannyLee 8:b4a2954dd74f 7 Homepage::~Homepage()
DannyLee 5:e3a9f0548922 8 {}
DannyLee 5:e3a9f0548922 9
DannyLee 6:cbd9e1f26a10 10 void Homepage::welcome(N5110 &lcd,BusOut &output,Bgm &bgm)
DannyLee 5:e3a9f0548922 11 {
DannyLee 5:e3a9f0548922 12 //show "Spaceship"
DannyLee 5:e3a9f0548922 13 lcd.printString(" Spaceship ",0,1);
DannyLee 5:e3a9f0548922 14 lcd.refresh();
DannyLee 5:e3a9f0548922 15 output=0b000000;
DannyLee 5:e3a9f0548922 16
DannyLee 5:e3a9f0548922 17 //welcome bgm
DannyLee 5:e3a9f0548922 18 bgm.welcome();
DannyLee 5:e3a9f0548922 19 output=0b111111;
DannyLee 5:e3a9f0548922 20 lcd.clear();
DannyLee 5:e3a9f0548922 21 }
DannyLee 5:e3a9f0548922 22 void Homepage::over(N5110 &lcd,BusOut &output)
DannyLee 5:e3a9f0548922 23 {
DannyLee 5:e3a9f0548922 24 //show game over
DannyLee 6:cbd9e1f26a10 25 lcd.printString(" You are failed ",0,1);
DannyLee 5:e3a9f0548922 26 lcd.printString(" Press Start ",0,4);
DannyLee 5:e3a9f0548922 27 lcd.refresh();
DannyLee 5:e3a9f0548922 28 wait(1.0f);
DannyLee 5:e3a9f0548922 29 output=0b000000;
DannyLee 5:e3a9f0548922 30 wait(1.0f);
DannyLee 5:e3a9f0548922 31 output=0b111111;
DannyLee 5:e3a9f0548922 32 lcd.clear();
DannyLee 5:e3a9f0548922 33 }
DannyLee 8:b4a2954dd74f 34 void Homepage::homepage(N5110 &lcd,InterruptIn &buttonB, InterruptIn &start,int *score,int n)
DannyLee 5:e3a9f0548922 35 {
DannyLee 5:e3a9f0548922 36 //show Homepage and check the pressed button
DannyLee 5:e3a9f0548922 37 lcd.refresh();
DannyLee 5:e3a9f0548922 38 while(1){
DannyLee 5:e3a9f0548922 39
DannyLee 5:e3a9f0548922 40 lcd.printString(" Press Start to start ",0,0);
DannyLee 8:b4a2954dd74f 41 lcd.printString(" Press B to Rules",0,2);
DannyLee 5:e3a9f0548922 42 lcd.refresh();
DannyLee 5:e3a9f0548922 43
DannyLee 8:b4a2954dd74f 44 if(buttonB){
DannyLee 6:cbd9e1f26a10 45 wait(0.5f);
DannyLee 5:e3a9f0548922 46 lcd.clear();
DannyLee 8:b4a2954dd74f 47 rules(lcd,buttonB);
DannyLee 5:e3a9f0548922 48 }else if(start){
DannyLee 8:b4a2954dd74f 49 lcd.clear();
DannyLee 5:e3a9f0548922 50 break;
DannyLee 5:e3a9f0548922 51 }
DannyLee 5:e3a9f0548922 52 }
DannyLee 5:e3a9f0548922 53
DannyLee 5:e3a9f0548922 54 }
DannyLee 5:e3a9f0548922 55
DannyLee 5:e3a9f0548922 56
DannyLee 6:cbd9e1f26a10 57 void Homepage::displayCurScore(N5110 &lcd,int score){
DannyLee 5:e3a9f0548922 58 char buffer[4];
DannyLee 5:e3a9f0548922 59 sprintf(buffer,"%d",score);
DannyLee 5:e3a9f0548922 60 lcd.printString(buffer,0,0);
DannyLee 5:e3a9f0548922 61 }
DannyLee 8:b4a2954dd74f 62
DannyLee 8:b4a2954dd74f 63 void Homepage::rules(N5110 &lcd,InterruptIn &buttonB) {
DannyLee 5:e3a9f0548922 64 //show game rules
DannyLee 5:e3a9f0548922 65 while(1) {
DannyLee 5:e3a9f0548922 66 lcd.clear();
DannyLee 5:e3a9f0548922 67 lcd.printString("press X to fire",0,0);
DannyLee 5:e3a9f0548922 68 lcd.printString("use Joystick to move",0,1);
DannyLee 5:e3a9f0548922 69 lcd.printString("You need to destroy UFO",0,2);
DannyLee 5:e3a9f0548922 70 lcd.printString("Don't let a UFO come near you",0,3);
DannyLee 5:e3a9f0548922 71 lcd.printString("Press B to go back",0,5);
DannyLee 5:e3a9f0548922 72 lcd.refresh();
DannyLee 5:e3a9f0548922 73 if(buttonB) {
DannyLee 5:e3a9f0548922 74 lcd.clear();
DannyLee 5:e3a9f0548922 75 wait(0.5f);
DannyLee 5:e3a9f0548922 76 return;
DannyLee 5:e3a9f0548922 77 }
DannyLee 5:e3a9f0548922 78 }
DannyLee 5:e3a9f0548922 79 }
DannyLee 8:b4a2954dd74f 80 int Homepage::again(N5110 &lcd,int score,InterruptIn &buttonX,InterruptIn &buttonY){
DannyLee 5:e3a9f0548922 81
DannyLee 5:e3a9f0548922 82 lcd.clear();
DannyLee 5:e3a9f0548922 83 while(1){
DannyLee 5:e3a9f0548922 84 if(score>10){
DannyLee 6:cbd9e1f26a10 85 //if score > 10, player have enough POINTS to replay when he is defeated.
DannyLee 5:e3a9f0548922 86 lcd.printString("Play Again?",0,0);
DannyLee 5:e3a9f0548922 87 lcd.printString("Price: 10",0,2);
DannyLee 5:e3a9f0548922 88 lcd.printString("X Yes",0,3);
DannyLee 5:e3a9f0548922 89 lcd.printString("Y No",0,4);
DannyLee 5:e3a9f0548922 90 lcd.refresh();
DannyLee 5:e3a9f0548922 91 if(buttonX){
DannyLee 5:e3a9f0548922 92 wait(0.5f);
DannyLee 5:e3a9f0548922 93 lcd.clear();
DannyLee 5:e3a9f0548922 94 return -10;
DannyLee 5:e3a9f0548922 95 }else if(buttonY){
DannyLee 5:e3a9f0548922 96 wait(0.5f);
DannyLee 5:e3a9f0548922 97 lcd.clear();
DannyLee 5:e3a9f0548922 98 return 0;
DannyLee 5:e3a9f0548922 99 }
DannyLee 5:e3a9f0548922 100 }else{
DannyLee 6:cbd9e1f26a10 101 lcd.printString("Fail",0,1);
DannyLee 5:e3a9f0548922 102 lcd.printString("Press Y return",0,2);
DannyLee 5:e3a9f0548922 103 lcd.refresh();
DannyLee 5:e3a9f0548922 104 if(buttonY){
DannyLee 5:e3a9f0548922 105 wait(0.5f);
DannyLee 5:e3a9f0548922 106 lcd.clear();
DannyLee 5:e3a9f0548922 107 return 0;
DannyLee 5:e3a9f0548922 108 }
DannyLee 5:e3a9f0548922 109 }
DannyLee 5:e3a9f0548922 110 }
DannyLee 5:e3a9f0548922 111
DannyLee 5:e3a9f0548922 112 }