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