Yang Zhenye 201199680
Dependencies: mbed
Menu/Menu.cpp@9:a5a82b3d1102, 2020-05-15 (annotated)
- Committer:
- yangzhenye
- Date:
- Fri May 15 07:27:23 2020 +0000
- Revision:
- 9:a5a82b3d1102
- Parent:
- 8:c02c278320c0
el17zy Yang Zhenye
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yangzhenye | 5:fcad75e9b9e1 | 1 | /* |
yangzhenye | 5:fcad75e9b9e1 | 2 | ELEC2645 Embedded Systems Project |
yangzhenye | 5:fcad75e9b9e1 | 3 | School of Electronic & Electrical Engineering |
yangzhenye | 5:fcad75e9b9e1 | 4 | University of Leeds |
yangzhenye | 5:fcad75e9b9e1 | 5 | 2019/20 |
yangzhenye | 5:fcad75e9b9e1 | 6 | |
yangzhenye | 5:fcad75e9b9e1 | 7 | Name:Yang Zhenye |
yangzhenye | 5:fcad75e9b9e1 | 8 | Username:el17zy |
yangzhenye | 5:fcad75e9b9e1 | 9 | Student ID Number:201199680 |
yangzhenye | 5:fcad75e9b9e1 | 10 | Date:2020/5/12 |
yangzhenye | 5:fcad75e9b9e1 | 11 | */ |
yangzhenye | 5:fcad75e9b9e1 | 12 | |
yangzhenye | 2:baca89f466bc | 13 | #include "Menu.h" |
yangzhenye | 2:baca89f466bc | 14 | |
yangzhenye | 2:baca89f466bc | 15 | int _sprite[30][80]= { |
yangzhenye | 5:fcad75e9b9e1 | 16 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 17 | {0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1,0,1,0,0,0,0,1}, |
yangzhenye | 5:fcad75e9b9e1 | 18 | {0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,1}, |
yangzhenye | 5:fcad75e9b9e1 | 19 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0}, |
yangzhenye | 5:fcad75e9b9e1 | 20 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0}, |
yangzhenye | 5:fcad75e9b9e1 | 21 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 22 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 23 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 24 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 25 | {0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 26 | {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 27 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 28 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 29 | {0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1}, |
yangzhenye | 5:fcad75e9b9e1 | 30 | {0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0}, |
yangzhenye | 5:fcad75e9b9e1 | 31 | {0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 32 | {0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 33 | {0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 34 | {0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 35 | {0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,1,0,1,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 36 | {0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 37 | {0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 38 | {0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 39 | {0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 40 | {0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 41 | {0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 42 | {0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 43 | {0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 44 | {0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 5:fcad75e9b9e1 | 45 | {0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
yangzhenye | 4:eb8dca1dc341 | 46 | }; |
yangzhenye | 5:fcad75e9b9e1 | 47 | |
yangzhenye | 5:fcad75e9b9e1 | 48 | State fsm[3] = { |
yangzhenye | 5:fcad75e9b9e1 | 49 | {0,{0,1,2,0}}, |
yangzhenye | 5:fcad75e9b9e1 | 50 | {1,{1,1,1,0}}, |
yangzhenye | 5:fcad75e9b9e1 | 51 | {2,{2,2,2,0}} |
yangzhenye | 5:fcad75e9b9e1 | 52 | }; |
yangzhenye | 5:fcad75e9b9e1 | 53 | |
yangzhenye | 5:fcad75e9b9e1 | 54 | Menu::Menu() {} |
yangzhenye | 5:fcad75e9b9e1 | 55 | |
yangzhenye | 5:fcad75e9b9e1 | 56 | Menu::~Menu() {} |
yangzhenye | 5:fcad75e9b9e1 | 57 | |
yangzhenye | 2:baca89f466bc | 58 | |
yangzhenye | 2:baca89f466bc | 59 | void Menu::init() { |
yangzhenye | 2:baca89f466bc | 60 | _state = 0; |
yangzhenye | 5:fcad75e9b9e1 | 61 | _engine.init(); } |
yangzhenye | 6:4abef55fee88 | 62 | // starting the menu |
yangzhenye | 2:baca89f466bc | 63 | |
yangzhenye | 5:fcad75e9b9e1 | 64 | void Menu::run_engine(N5110 &lcd, Gamepad &gamepad) { |
yangzhenye | 5:fcad75e9b9e1 | 65 | get_input(gamepad.check_event(Gamepad::START_PRESSED),gamepad.check_event(Gamepad::BACK_PRESSED),gamepad.check_event(Gamepad::X_PRESSED)); |
yangzhenye | 2:baca89f466bc | 66 | _output = fsm[_state].output; |
yangzhenye | 2:baca89f466bc | 67 | _state = fsm[_state].next_state[_input]; } |
yangzhenye | 2:baca89f466bc | 68 | |
yangzhenye | 5:fcad75e9b9e1 | 69 | void Menu::get_input(bool start, bool back, bool x) { |
yangzhenye | 2:baca89f466bc | 70 | if (!start && !back && !x) { |
yangzhenye | 2:baca89f466bc | 71 | _input = 0;} |
yangzhenye | 2:baca89f466bc | 72 | else if (start && !back && !x) { |
yangzhenye | 2:baca89f466bc | 73 | _input = 1;} |
yangzhenye | 2:baca89f466bc | 74 | else if (x && !start && !back) { |
yangzhenye | 2:baca89f466bc | 75 | _input = 2;} |
yangzhenye | 2:baca89f466bc | 76 | else if (!start && back) { |
yangzhenye | 2:baca89f466bc | 77 | _input = 3;} } |
yangzhenye | 5:fcad75e9b9e1 | 78 | |
yangzhenye | 5:fcad75e9b9e1 | 79 | void Menu::get_output(N5110 &lcd, Gamepad &gamepad) { |
yangzhenye | 9:a5a82b3d1102 | 80 | if (_output == 0) { |
yangzhenye | 5:fcad75e9b9e1 | 81 | run_engine(lcd, gamepad); } |
yangzhenye | 5:fcad75e9b9e1 | 82 | else if(_output == 1) { |
yangzhenye | 9:a5a82b3d1102 | 83 | display_page1(lcd, gamepad); |
yangzhenye | 9:a5a82b3d1102 | 84 | // display_page2(lcd, gamepad); |
yangzhenye | 9:a5a82b3d1102 | 85 | // run_engine(lcd, gamepad); |
yangzhenye | 9:a5a82b3d1102 | 86 | } |
yangzhenye | 5:fcad75e9b9e1 | 87 | else if(_output == 2) { |
yangzhenye | 5:fcad75e9b9e1 | 88 | display_page3(lcd, gamepad); } } |
yangzhenye | 6:4abef55fee88 | 89 | //display the three pages |
yangzhenye | 2:baca89f466bc | 90 | |
yangzhenye | 2:baca89f466bc | 91 | |
yangzhenye | 5:fcad75e9b9e1 | 92 | void Menu::display_page1(N5110 &lcd, Gamepad &gamepad) { |
yangzhenye | 2:baca89f466bc | 93 | lcd.printString("Start - playgame!",0,4); |
yangzhenye | 5:fcad75e9b9e1 | 94 | lcd.printString("X - instruction",0,5); |
yangzhenye | 5:fcad75e9b9e1 | 95 | lcd.drawSprite(1,60,30,80,(int*)_sprite); } |
yangzhenye | 2:baca89f466bc | 96 | |
yangzhenye | 9:a5a82b3d1102 | 97 | //void Menu::display_page2(N5110 &lcd, Gamepad &gamepad) { |
yangzhenye | 9:a5a82b3d1102 | 98 | // lcd.printString("It is Rooney turn!",0,0); |
yangzhenye | 9:a5a82b3d1102 | 99 | //} |
yangzhenye | 2:baca89f466bc | 100 | |
yangzhenye | 5:fcad75e9b9e1 | 101 | void Menu::display_page3(N5110 &lcd, Gamepad &gamepad) { |
yangzhenye | 2:baca89f466bc | 102 | lcd.printString("joystick - ",0,1); |
yangzhenye | 4:eb8dca1dc341 | 103 | lcd.printString("control Rooney - ",0,3); |
yangzhenye | 2:baca89f466bc | 104 | lcd.printString("Be a hero! - ",0,4); |
yangzhenye | 2:baca89f466bc | 105 | lcd.printString("Save England! - ",0,1); } |
yangzhenye | 2:baca89f466bc | 106 | |
yangzhenye | 5:fcad75e9b9e1 | 107 | void Menu::run_game(N5110 &lcd, Gamepad &gamepad){ |
yangzhenye | 5:fcad75e9b9e1 | 108 | _engine.run_engine(lcd, gamepad);} |
yangzhenye | 5:fcad75e9b9e1 | 109 | |
yangzhenye | 2:baca89f466bc | 110 | |
yangzhenye | 2:baca89f466bc | 111 |