contains my game for the embedded systems project 2645

Dependencies:   mbed FXOS8700CQQQ

GameMenus/Menus.cpp

Committer:
OmarAlebiary
Date:
2019-04-25
Revision:
29:e660274d8222
Parent:
28:39607fb67e88
Child:
30:c5060010a1e6

File content as of revision 29:e660274d8222:

#include "Menus.h"



Menus::Menus(){
}
Menus::~Menus(){
}
void Menus::welcomeMenu(Gamepad &pad,N5110 &lcd) {
    
    lcd.printString(" Rocket Racer   ",0,0);  
    
    lcd.drawSprite(25,8,11,9,(int *)enemyMainMenu);
    lcd.drawSprite(45,15,11,9,(int *)enemyMainMenu);
    lcd.drawSprite(35,31,11,9,(int *)rocketMainMenu);
    lcd.drawLine(20, 10, 20,45,1);
    lcd.drawLine(22, 10, 22,45,2);
    lcd.drawLine(57, 10, 57,45,1);
    lcd.drawLine(55, 10, 55,45,2);
    
    pad.leds_on();//turns all leds on
    lcd.refresh();
    tone.Play_Welcome_Melody(pad);
    wait(1); 
 
}


void Menus::drawMenu(N5110 &lcd,Gamepad &pad) {
  
  lcd.clear();
  lcd.printString("MAIN MENU", 15, 0);
  lcd.drawLine(1, 10,80 ,10,1);
  lcd.printString("Play       -A", 2, 2);
  lcd.printString("Instructions-B", 1, 3);
  lcd.printString("Credits    - X", 1, 4);
  pad.leds_off();
  wait(0.1);
  pad.leds_on(); 
  wait(0.1);
  lcd.refresh();
  
  check_button_pressed(pad,lcd);
          
}


void Menus::check_button_pressed(Gamepad &pad,N5110 &lcd){
    
    if (pad.check_event(Gamepad::A_PRESSED) == true){
      pad.leds_off();
      while(1){
        Rocket_Race.Game_Loop(lcd,pad);
        }
    }
   else if (pad.check_event(Gamepad::B_PRESSED) == true){
      InstructionsMenu(pad,lcd);
      if (pad.check_event(Gamepad::BACK_PRESSED) == true){
      drawMenu(lcd,pad);
        }
    } 
    else if (pad.check_event(Gamepad::X_PRESSED) == true){
      credits(lcd,pad);
      if (pad.check_event(Gamepad::BACK_PRESSED) == true){
      drawMenu(lcd,pad);
        }
      }    
    }


void Menus::credits(N5110 &lcd,Gamepad &pad) {
  
  lcd.clear();
  
  lcd.printString("Game By:", 8, 1);
  lcd.printString("Omar Alebiary", 7, 2);
  lcd.printString("ID: 201172644", 7, 3);
  
  lcd.printString("< press BACK ", 12, 5);
   
  
  lcd.refresh();
  wait(0.5);
  while ( pad.check_event(Gamepad::BACK_PRESSED) == false){//keep looping since back not pressed
        pad.leds_on();//turn all leds on
        wait(0.1);
        pad.leds_off();//turn all leds off
        wait(0.1);
        
    }
  
}


void Menus::loading_menu(N5110 &lcd) {
  lcd.clear();
  lcd.printString("loading...", 2, 1);
  
  lcd.drawLine(7, 20,12 ,20,1);
  lcd.refresh();
  wait(0.6); 
  lcd.drawLine(7, 20,24 ,20,1);
  lcd.refresh();
  wait(0.5);
  lcd.drawLine(7, 20,34 ,20,1);
  lcd.refresh();
  wait(0.6); 
  lcd.drawLine(7, 20,44,20,1);
  lcd.refresh();
  wait(0.2);
  lcd.drawLine(7, 20,65 ,20,1);
  lcd.refresh();
  wait(0.2);
}


void Menus::InstructionsMenu(Gamepad &pad,N5110 &lcd){
    
    lcd.clear();
    lcd.printString("How to play:",0,0); 
    lcd.printString("Use joystick",0,1);
    lcd.printString("or L & R",0,2);
    lcd.printString("to escape ",0,3);
    lcd.printString("enemies.",0,4);
    lcd.printString("< press BACK ", 12, 5);
    
    lcd.refresh();
    wait(0.5);
    while ( pad.check_event(Gamepad::BACK_PRESSED) == false){//keep looping since back not pressed
        pad.leds_on();//turn all leds on
        wait(0.1);
        pad.leds_off();//turn all leds off
        wait(0.1);
        
    }  
}