ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Thu Mar 21 15:12:07 2019 +0000
Revision:
19:b78fa41d04a9
Parent:
4:02c63aaa2df9
Child:
24:0570cb4b92d7
I have made a game over screen when the player dies. I made the red light flash (when health is low). I have started making a new intro to my game - animated. I have made a "game over" title - need to add to the screen. Have made multiple led flash.

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 19:b78fa41d04a9 46 if (gamepad.check_event(gamepad.A_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 }