ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Sun Mar 03 23:36:34 2019 +0000
Revision:
4:02c63aaa2df9
Child:
19:b78fa41d04a9
Decided to switch to the class system (need to understand it better). Removed the parts of the menu from the main (was adviced to keep it separate). Have made it go from the menu into the game. ; To Do: the animation, setting, tutorial, in-game menu.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Noximilien 4:02c63aaa2df9 1 #include "main.h"
Noximilien 4:02c63aaa2df9 2 #include "menu.h"
Noximilien 4:02c63aaa2df9 3
Noximilien 4:02c63aaa2df9 4 const int total_options = 3;
Noximilien 4:02c63aaa2df9 5 const float time_delay = 100;
Noximilien 4:02c63aaa2df9 6
Noximilien 4:02c63aaa2df9 7 int cursor[84] = {
Noximilien 4:02c63aaa2df9 8 0,0,0,0,1,0,0,0,0,0,1,1,
Noximilien 4:02c63aaa2df9 9 0,0,1,1,1,1,0,0,0,1,0,0,
Noximilien 4:02c63aaa2df9 10 0,1,0,0,1,1,1,0,1,0,0,0,
Noximilien 4:02c63aaa2df9 11 1,1,1,1,1,0,1,1,1,0,1,1,
Noximilien 4:02c63aaa2df9 12 0,1,0,0,1,1,1,0,1,0,0,0,
Noximilien 4:02c63aaa2df9 13 0,0,1,1,1,1,0,0,0,1,0,0,
Noximilien 4:02c63aaa2df9 14 0,0,0,0,1,0,0,0,0,0,1,1
Noximilien 4:02c63aaa2df9 15 };
Noximilien 4:02c63aaa2df9 16
Noximilien 4:02c63aaa2df9 17
Noximilien 4:02c63aaa2df9 18 Menu::Menu() { // NOTE to self: The constructor for declerering intial states of variables.
Noximilien 4:02c63aaa2df9 19 current_option = 0; // As soon as Menu menu; happens in main, the zero is addressed to the variable.
Noximilien 4:02c63aaa2df9 20 } // Another form of declering intial values.
Noximilien 4:02c63aaa2df9 21
Noximilien 4:02c63aaa2df9 22
Noximilien 4:02c63aaa2df9 23 bool Menu::updateAndDraw() { // cheking whether the joystick was moved to point at other options in the menu.
Noximilien 4:02c63aaa2df9 24 if(y_dir.read() > 0.6f){
Noximilien 4:02c63aaa2df9 25 current_option -= 1;
Noximilien 4:02c63aaa2df9 26 wait_ms(time_delay);
Noximilien 4:02c63aaa2df9 27 }
Noximilien 4:02c63aaa2df9 28 else if (y_dir.read() < 0.4f){
Noximilien 4:02c63aaa2df9 29 current_option += 1;
Noximilien 4:02c63aaa2df9 30 wait_ms(time_delay);
Noximilien 4:02c63aaa2df9 31 }
Noximilien 4:02c63aaa2df9 32 if (current_option < 0) {
Noximilien 4:02c63aaa2df9 33 current_option += total_options;
Noximilien 4:02c63aaa2df9 34 }
Noximilien 4:02c63aaa2df9 35 if (current_option >= total_options) {
Noximilien 4:02c63aaa2df9 36 current_option -= total_options;
Noximilien 4:02c63aaa2df9 37 }
Noximilien 4:02c63aaa2df9 38
Noximilien 4:02c63aaa2df9 39 drawPointer(); // Drawing pointer only ones.
Noximilien 4:02c63aaa2df9 40
Noximilien 4:02c63aaa2df9 41 lcd.printString(" Start Game",1,2);
Noximilien 4:02c63aaa2df9 42 lcd.printString(" Tutorial",1,3);
Noximilien 4:02c63aaa2df9 43 lcd.printString(" Settings",1,4);
Noximilien 4:02c63aaa2df9 44
Noximilien 4:02c63aaa2df9 45 bool option_picked = false; // Checking for the selecting button to be pressed and returning the boolean statement.
Noximilien 4:02c63aaa2df9 46 if (gamepad.check_event(gamepad.B_PRESSED)){
Noximilien 4:02c63aaa2df9 47 option_picked = true;
Noximilien 4:02c63aaa2df9 48 }
Noximilien 4:02c63aaa2df9 49 return option_picked;
Noximilien 4:02c63aaa2df9 50 }
Noximilien 4:02c63aaa2df9 51
Noximilien 4:02c63aaa2df9 52 ScreenOption Menu::getCurrentScreenSelection() { // checking the current position of the pointer and main
Noximilien 4:02c63aaa2df9 53 if (current_option == 0) { // if the "Game" was selected and button be pressed, intilise game.
Noximilien 4:02c63aaa2df9 54 return ScreenOption_Game; // TASK for future: creat file with settings and tutorial.
Noximilien 4:02c63aaa2df9 55 }
Noximilien 4:02c63aaa2df9 56 if (current_option == 1) {
Noximilien 4:02c63aaa2df9 57 return ScreenOption_Tutorial;
Noximilien 4:02c63aaa2df9 58 }
Noximilien 4:02c63aaa2df9 59 if (current_option == 2) {
Noximilien 4:02c63aaa2df9 60 return ScreenOption_Settings;
Noximilien 4:02c63aaa2df9 61 }
Noximilien 4:02c63aaa2df9 62 return ScreenOption_Menu;
Noximilien 4:02c63aaa2df9 63 }
Noximilien 4:02c63aaa2df9 64
Noximilien 4:02c63aaa2df9 65 void Menu::drawPointer(){ // Checking what option was selected and drawing the pointer
Noximilien 4:02c63aaa2df9 66 int x = 70; // to indicate that postion.
Noximilien 4:02c63aaa2df9 67 int y = 17;
Noximilien 4:02c63aaa2df9 68 if (current_option == 0){
Noximilien 4:02c63aaa2df9 69 y = 17;
Noximilien 4:02c63aaa2df9 70 }
Noximilien 4:02c63aaa2df9 71 else if (current_option == 1){
Noximilien 4:02c63aaa2df9 72 y = 25;
Noximilien 4:02c63aaa2df9 73 }
Noximilien 4:02c63aaa2df9 74 else if (current_option == 2){
Noximilien 4:02c63aaa2df9 75 y = 32;
Noximilien 4:02c63aaa2df9 76 }
Noximilien 4:02c63aaa2df9 77 lcd.drawSprite(x, y, 7, 12, cursor);
Noximilien 4:02c63aaa2df9 78 }