ssd

Dependents:   Starwars

sdasdsad

Committer:
mrkang
Date:
Mon Apr 27 14:04:10 2020 +0000
Revision:
0:c22f4a404631
Star

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mrkang 0:c22f4a404631 1 #include "Menu.h"
mrkang 0:c22f4a404631 2 Menu::Menu(){
mrkang 0:c22f4a404631 3 mode = 0;
mrkang 0:c22f4a404631 4 }
mrkang 0:c22f4a404631 5 Menu::~Menu(){
mrkang 0:c22f4a404631 6
mrkang 0:c22f4a404631 7 }
mrkang 0:c22f4a404631 8 void Menu::welcome(N5110 &lcd,BusOut &output,Sound &sound)
mrkang 0:c22f4a404631 9 {
mrkang 0:c22f4a404631 10 lcd.printString(" Star War ",0,1);
mrkang 0:c22f4a404631 11 lcd.refresh();
mrkang 0:c22f4a404631 12 drawEverything(lcd);
mrkang 0:c22f4a404631 13 lcd.refresh();
mrkang 0:c22f4a404631 14 output=0b000000;
mrkang 0:c22f4a404631 15 sound.welcome();
mrkang 0:c22f4a404631 16 output=0b111111;
mrkang 0:c22f4a404631 17 lcd.clear();
mrkang 0:c22f4a404631 18 }
mrkang 0:c22f4a404631 19 void Menu::over(N5110 &lcd,BusOut &output)
mrkang 0:c22f4a404631 20 {
mrkang 0:c22f4a404631 21 lcd.printString("Game Over!",0,1);
mrkang 0:c22f4a404631 22 lcd.printString("Press Start",0,4);
mrkang 0:c22f4a404631 23 lcd.refresh();
mrkang 0:c22f4a404631 24 wait(1.0f);
mrkang 0:c22f4a404631 25 output=0b000000;
mrkang 0:c22f4a404631 26 wait(1.0f);
mrkang 0:c22f4a404631 27 output=0b111111;
mrkang 0:c22f4a404631 28 lcd.clear();
mrkang 0:c22f4a404631 29 }
mrkang 0:c22f4a404631 30 void Menu::menu(N5110 &lcd,InterruptIn &buttonA,InterruptIn &buttonY,InterruptIn &buttonX,InterruptIn &buttonB,InterruptIn &start,int *score,int n)
mrkang 0:c22f4a404631 31 {
mrkang 0:c22f4a404631 32 lcd.refresh();
mrkang 0:c22f4a404631 33 while(1){
mrkang 0:c22f4a404631 34 lcd.printString("Start Start",0,0);
mrkang 0:c22f4a404631 35 lcd.printString("A Ranking",0,2);
mrkang 0:c22f4a404631 36 lcd.printString("X Select Mode",0,3);
mrkang 0:c22f4a404631 37 lcd.printString("B Rules",0,4);
mrkang 0:c22f4a404631 38 lcd.printString("Y Store",0,5);
mrkang 0:c22f4a404631 39 lcd.refresh();
mrkang 0:c22f4a404631 40
mrkang 0:c22f4a404631 41 if(buttonA){
mrkang 0:c22f4a404631 42 wait(0.5f);
mrkang 0:c22f4a404631 43 lcd.clear();
mrkang 0:c22f4a404631 44 ranking(lcd,score,n,buttonA);
mrkang 0:c22f4a404631 45 }else if(start){
mrkang 0:c22f4a404631 46 lcd.clear();
mrkang 0:c22f4a404631 47 break;
mrkang 0:c22f4a404631 48 }else if(buttonX){
mrkang 0:c22f4a404631 49 wait(0.5f);
mrkang 0:c22f4a404631 50 lcd.clear();
mrkang 0:c22f4a404631 51 setMode(lcd,buttonA,buttonY,buttonX);
mrkang 0:c22f4a404631 52 }else if(buttonB){
mrkang 0:c22f4a404631 53 wait(0.5f);
mrkang 0:c22f4a404631 54 lcd.clear();
mrkang 0:c22f4a404631 55 rules(lcd,buttonB);
mrkang 0:c22f4a404631 56 }else if(buttonY){
mrkang 0:c22f4a404631 57 wait(0.5f);
mrkang 0:c22f4a404631 58 lcd.clear();
mrkang 0:c22f4a404631 59 store(lcd,buttonY);
mrkang 0:c22f4a404631 60 }
mrkang 0:c22f4a404631 61 }
mrkang 0:c22f4a404631 62 }
mrkang 0:c22f4a404631 63 void Menu::setMode(N5110 &lcd,InterruptIn &buttonA,InterruptIn &buttonY,InterruptIn &buttonX){
mrkang 0:c22f4a404631 64 lcd.refresh();
mrkang 0:c22f4a404631 65 while(1){
mrkang 0:c22f4a404631 66 lcd.printString("Y Easy",0,1);
mrkang 0:c22f4a404631 67 lcd.printString("A Normal",0,2);
mrkang 0:c22f4a404631 68 lcd.printString("X Hard",0,3);
mrkang 0:c22f4a404631 69 lcd.refresh();
mrkang 0:c22f4a404631 70
mrkang 0:c22f4a404631 71 if(buttonA){
mrkang 0:c22f4a404631 72 mode = 1;
mrkang 0:c22f4a404631 73 wait(0.5f);
mrkang 0:c22f4a404631 74 lcd.clear();
mrkang 0:c22f4a404631 75 break;
mrkang 0:c22f4a404631 76 }
mrkang 0:c22f4a404631 77 }
mrkang 0:c22f4a404631 78 }
mrkang 0:c22f4a404631 79 int Menu::getMode(){
mrkang 0:c22f4a404631 80 return mode;
mrkang 0:c22f4a404631 81 }
mrkang 0:c22f4a404631 82 void Menu::ranking(N5110 &lcd,int *score,int n,InterruptIn &buttonA){
mrkang 0:c22f4a404631 83 while(1){
mrkang 0:c22f4a404631 84 for(int i = 0;i<n;i++){
mrkang 0:c22f4a404631 85 char buffer[10];
mrkang 0:c22f4a404631 86 sprintf(buffer,"%d.%d",i+1,score[i]);
mrkang 0:c22f4a404631 87 lcd.printString(buffer,0,i+1);
mrkang 0:c22f4a404631 88 }
mrkang 0:c22f4a404631 89 lcd.printString("Press A to return",0,5);
mrkang 0:c22f4a404631 90 lcd.refresh();
mrkang 0:c22f4a404631 91 if(buttonA) {
mrkang 0:c22f4a404631 92 lcd.clear();
mrkang 0:c22f4a404631 93 wait(0.5f);
mrkang 0:c22f4a404631 94 return;
mrkang 0:c22f4a404631 95 }
mrkang 0:c22f4a404631 96 }
mrkang 0:c22f4a404631 97 }
mrkang 0:c22f4a404631 98 void Menu::displayCurScore(N5110 &lcd,int score) {
mrkang 0:c22f4a404631 99 char buffer[4];
mrkang 0:c22f4a404631 100 sprintf(buffer,"%d",score);
mrkang 0:c22f4a404631 101 lcd.printString(buffer,0,0);
mrkang 0:c22f4a404631 102 }
mrkang 0:c22f4a404631 103 void Menu::drawEverything(N5110 &lcd){
mrkang 0:c22f4a404631 104 int enemy[60] = {
mrkang 0:c22f4a404631 105 0,0,1,1,1,1,1,1,1,1,0,0,
mrkang 0:c22f4a404631 106 0,1,1,1,1,1,1,1,1,1,1,0,
mrkang 0:c22f4a404631 107 1,1,1,1,0,1,1,0,1,1,1,1,
mrkang 0:c22f4a404631 108 0,1,1,1,1,1,1,1,1,1,1,0,
mrkang 0:c22f4a404631 109 0,0,1,1,1,1,1,1,1,1,0,0 };
mrkang 0:c22f4a404631 110 Bitmap sprite(enemy,5,12);
mrkang 0:c22f4a404631 111 sprite.render(lcd,64,30);
mrkang 0:c22f4a404631 112
mrkang 0:c22f4a404631 113 int bullet[15] = {
mrkang 0:c22f4a404631 114 0,0,0,1,0,
mrkang 0:c22f4a404631 115 1,1,1,1,1,
mrkang 0:c22f4a404631 116 0,0,0,1,0 };
mrkang 0:c22f4a404631 117 Bitmap spritel(bullet,3,5);
mrkang 0:c22f4a404631 118 spritel.render(lcd,40,32);
mrkang 0:c22f4a404631 119
mrkang 0:c22f4a404631 120 int _Plane[] = {
mrkang 0:c22f4a404631 121 0,0,0,1,0,0,0,0,0,0,
mrkang 0:c22f4a404631 122 0,0,0,1,1,1,0,0,0,0,
mrkang 0:c22f4a404631 123 0,0,0,1,1,1,0,0,0,0,
mrkang 0:c22f4a404631 124 1,1,1,1,1,1,1,1,1,0,
mrkang 0:c22f4a404631 125 0,0,1,1,1,1,1,0,1,1,
mrkang 0:c22f4a404631 126 1,1,1,1,1,1,1,1,1,0,
mrkang 0:c22f4a404631 127 0,0,0,0,0,0,0,0,0,0,
mrkang 0:c22f4a404631 128 0,0,0,0,0,0,0,0,0,0,
mrkang 0:c22f4a404631 129 0,0,0,0,0,0,0,0,0,0,
mrkang 0:c22f4a404631 130 0,0,0,0,0,0,0,0,0,0 };
mrkang 0:c22f4a404631 131
mrkang 0:c22f4a404631 132 Bitmap sprite2(_Plane,10,10);
mrkang 0:c22f4a404631 133 sprite2.render(lcd,9,28);
mrkang 0:c22f4a404631 134 }
mrkang 0:c22f4a404631 135 void Menu::rules(N5110 &lcd,InterruptIn &buttonB) {
mrkang 0:c22f4a404631 136 while(1){
mrkang 0:c22f4a404631 137 lcd.clear();
mrkang 0:c22f4a404631 138 lcd.printString("X fire bullet",0,0);
mrkang 0:c22f4a404631 139 lcd.printString("Joystick move",0,1);
mrkang 0:c22f4a404631 140 lcd.printString("Mission",0,2);
mrkang 0:c22f4a404631 141 lcd.printString("Destroy enemy",0,3);
mrkang 0:c22f4a404631 142 lcd.printString("Press B return",0,5);
mrkang 0:c22f4a404631 143 lcd.refresh();
mrkang 0:c22f4a404631 144 if(buttonB){
mrkang 0:c22f4a404631 145 lcd.clear();
mrkang 0:c22f4a404631 146 wait(0.5f);
mrkang 0:c22f4a404631 147 return;
mrkang 0:c22f4a404631 148 }
mrkang 0:c22f4a404631 149 }
mrkang 0:c22f4a404631 150 }
mrkang 0:c22f4a404631 151 int Menu::again(N5110 &lcd,int score,InterruptIn &buttonX, InterruptIn &buttonY){
mrkang 0:c22f4a404631 152
mrkang 0:c22f4a404631 153 lcd.clear();
mrkang 0:c22f4a404631 154 while(1){
mrkang 0:c22f4a404631 155 if(score>10){
mrkang 0:c22f4a404631 156 lcd.printString("Play Again?",0,0);
mrkang 0:c22f4a404631 157 lcd.printString("Price :10",0,2);
mrkang 0:c22f4a404631 158 lcd.printString("X Yes",0,3);
mrkang 0:c22f4a404631 159 lcd.printString("Y Not",0,4);
mrkang 0:c22f4a404631 160 lcd.refresh();
mrkang 0:c22f4a404631 161 if(buttonX){
mrkang 0:c22f4a404631 162 wait(0.5f);
mrkang 0:c22f4a404631 163 lcd.clear();
mrkang 0:c22f4a404631 164 return -10;
mrkang 0:c22f4a404631 165 }else if(buttonY){
mrkang 0:c22f4a404631 166 wait(0.5f);
mrkang 0:c22f4a404631 167 lcd.clear();
mrkang 0:c22f4a404631 168 return 0;
mrkang 0:c22f4a404631 169 }
mrkang 0:c22f4a404631 170 }else{
mrkang 0:c22f4a404631 171 lcd.printString("Fail!",0,1);
mrkang 0:c22f4a404631 172 lcd.printString("Press Y return",0,2);
mrkang 0:c22f4a404631 173 lcd.refresh();
mrkang 0:c22f4a404631 174 if(buttonY){
mrkang 0:c22f4a404631 175 wait(0.5f);
mrkang 0:c22f4a404631 176 lcd.clear();
mrkang 0:c22f4a404631 177 return 0;
mrkang 0:c22f4a404631 178 }
mrkang 0:c22f4a404631 179 }
mrkang 0:c22f4a404631 180 }
mrkang 0:c22f4a404631 181 }
mrkang 0:c22f4a404631 182
mrkang 0:c22f4a404631 183 void Menu::store(N5110 &lcd,InterruptIn &buttonY) {
mrkang 0:c22f4a404631 184 while(1) {
mrkang 0:c22f4a404631 185 lcd.clear();
mrkang 0:c22f4a404631 186 int _heart[] = {
mrkang 0:c22f4a404631 187 0,1,0,0,0,1,0,
mrkang 0:c22f4a404631 188 1,1,1,0,1,1,1,
mrkang 0:c22f4a404631 189 1,1,1,1,1,1,1,
mrkang 0:c22f4a404631 190 1,1,1,1,1,1,1,
mrkang 0:c22f4a404631 191 0,1,1,1,1,1,0,
mrkang 0:c22f4a404631 192 0,0,1,1,1,0,0,
mrkang 0:c22f4a404631 193 0,0,0,1,0,0,0 };
mrkang 0:c22f4a404631 194 Bitmap sprite3(_heart,7,7);
mrkang 0:c22f4a404631 195 sprite3.render(lcd,38,5);
mrkang 0:c22f4a404631 196 lcd.refresh();
mrkang 0:c22f4a404631 197 lcd.printString("In development",0,2);
mrkang 0:c22f4a404631 198 lcd.printString("Press Y return",0,5);
mrkang 0:c22f4a404631 199 lcd.refresh();
mrkang 0:c22f4a404631 200 if(buttonY) {
mrkang 0:c22f4a404631 201 lcd.clear();
mrkang 0:c22f4a404631 202 wait(0.5f);
mrkang 0:c22f4a404631 203 return;
mrkang 0:c22f4a404631 204 }
mrkang 0:c22f4a404631 205 }
mrkang 0:c22f4a404631 206 }