Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Sat Apr 06 20:13:33 2019 +0000
Revision:
26:676874c42883
Parent:
24:0570cb4b92d7
Child:
27:f05f4e738ba9
I have created a difficulty feature based on the in-game score. As the score gets higher, so does the game. Have added more comments. Started cleaning up the code and simplify it.

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