Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of el17dg by
menu/menu.cpp@4:02c63aaa2df9, 2019-03-03 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
