Dependencies: mbed
main.cpp@7:8d381315f72c, 2020-05-26 (annotated)
- Committer:
- ale_carb0ni
- Date:
- Tue May 26 22:53:42 2020 +0000
- Revision:
- 7:8d381315f72c
- Parent:
- 6:a2c72def99f9
Final Submission. I have read and agreed with Statement of Academic Integrity.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ale_carb0ni | 7:8d381315f72c | 1 | /* |
ale_carb0ni | 6:a2c72def99f9 | 2 | ELEC2645 Embedded Systems Project |
ale_carb0ni | 6:a2c72def99f9 | 3 | School of Electronic & Electrical Engineering |
ale_carb0ni | 6:a2c72def99f9 | 4 | University of Leeds |
ale_carb0ni | 6:a2c72def99f9 | 5 | 2019/20 |
ale_carb0ni | 6:a2c72def99f9 | 6 | |
ale_carb0ni | 6:a2c72def99f9 | 7 | Name: Alessandro Carboni |
ale_carb0ni | 6:a2c72def99f9 | 8 | Username: el18ac |
ale_carb0ni | 6:a2c72def99f9 | 9 | Student ID Number: 201253364 |
ale_carb0ni | 6:a2c72def99f9 | 10 | Date: 10/03/2020 |
ale_carb0ni | 6:a2c72def99f9 | 11 | */ |
ale_carb0ni | 6:a2c72def99f9 | 12 | |
ale_carb0ni | 7:8d381315f72c | 13 | // includes |
ale_carb0ni | 0:25d71a181bcd | 14 | #include "mbed.h" |
ale_carb0ni | 0:25d71a181bcd | 15 | #include "Gamepad.h" |
ale_carb0ni | 0:25d71a181bcd | 16 | #include "N5110.h" |
ale_carb0ni | 0:25d71a181bcd | 17 | #include <vector> |
ale_carb0ni | 2:7fa08670b1fc | 18 | #include "Menu.h" |
ale_carb0ni | 2:7fa08670b1fc | 19 | #include "Game.h" |
ale_carb0ni | 0:25d71a181bcd | 20 | |
ale_carb0ni | 7:8d381315f72c | 21 | //objects |
ale_carb0ni | 0:25d71a181bcd | 22 | N5110 lcd; |
ale_carb0ni | 0:25d71a181bcd | 23 | Gamepad pad; |
ale_carb0ni | 2:7fa08670b1fc | 24 | Menu menu(lcd,pad); |
ale_carb0ni | 3:c61d0c70eda4 | 25 | |
ale_carb0ni | 0:25d71a181bcd | 26 | |
ale_carb0ni | 7:8d381315f72c | 27 | //functions |
ale_carb0ni | 0:25d71a181bcd | 28 | void init(); |
ale_carb0ni | 2:7fa08670b1fc | 29 | void game_function(); |
ale_carb0ni | 1:a084ee340d74 | 30 | |
ale_carb0ni | 3:c61d0c70eda4 | 31 | //variables |
ale_carb0ni | 3:c61d0c70eda4 | 32 | int g_check = 0; |
ale_carb0ni | 3:c61d0c70eda4 | 33 | |
ale_carb0ni | 7:8d381315f72c | 34 | |
ale_carb0ni | 0:25d71a181bcd | 35 | int main() |
ale_carb0ni | 0:25d71a181bcd | 36 | { |
ale_carb0ni | 7:8d381315f72c | 37 | //initialises the lcd and the gamepad |
ale_carb0ni | 0:25d71a181bcd | 38 | init(); |
ale_carb0ni | 2:7fa08670b1fc | 39 | lcd.clear(); |
ale_carb0ni | 7:8d381315f72c | 40 | //creates the initial screen |
ale_carb0ni | 2:7fa08670b1fc | 41 | menu.initscreen(); |
ale_carb0ni | 7:8d381315f72c | 42 | //infinite loop for the game and menu |
ale_carb0ni | 2:7fa08670b1fc | 43 | while(1) { |
ale_carb0ni | 7:8d381315f72c | 44 | //checks if the gameover function is returning new game or menu |
ale_carb0ni | 3:c61d0c70eda4 | 45 | if (g_check == 2 || g_check == 0) { |
ale_carb0ni | 3:c61d0c70eda4 | 46 | menu.menu_screen(); |
ale_carb0ni | 3:c61d0c70eda4 | 47 | game_function(); |
ale_carb0ni | 3:c61d0c70eda4 | 48 | } else if ( g_check == 1) { |
ale_carb0ni | 3:c61d0c70eda4 | 49 | game_function(); |
ale_carb0ni | 2:7fa08670b1fc | 50 | } |
ale_carb0ni | 0:25d71a181bcd | 51 | } |
ale_carb0ni | 0:25d71a181bcd | 52 | } |
ale_carb0ni | 0:25d71a181bcd | 53 | void init() |
ale_carb0ni | 0:25d71a181bcd | 54 | { |
ale_carb0ni | 7:8d381315f72c | 55 | lcd.init();//initialises the screen |
ale_carb0ni | 7:8d381315f72c | 56 | pad.init();//initialises the gamepad |
ale_carb0ni | 0:25d71a181bcd | 57 | } |
ale_carb0ni | 0:25d71a181bcd | 58 | |
ale_carb0ni | 3:c61d0c70eda4 | 59 | void game_function() |
ale_carb0ni | 3:c61d0c70eda4 | 60 | { |
ale_carb0ni | 7:8d381315f72c | 61 | //creates class objects |
ale_carb0ni | 3:c61d0c70eda4 | 62 | Game game; |
ale_carb0ni | 3:c61d0c70eda4 | 63 | game.movement(pad); |
ale_carb0ni | 3:c61d0c70eda4 | 64 | game.draw(lcd, pad); |
ale_carb0ni | 3:c61d0c70eda4 | 65 | while(1) { |
ale_carb0ni | 3:c61d0c70eda4 | 66 | lcd.clear(); |
ale_carb0ni | 3:c61d0c70eda4 | 67 | //printf("clear\n"); |
ale_carb0ni | 3:c61d0c70eda4 | 68 | game.movement(pad); |
ale_carb0ni | 3:c61d0c70eda4 | 69 | //printf("movement\n"); |
ale_carb0ni | 4:17d5b53b8815 | 70 | game.updating_position(); |
ale_carb0ni | 6:a2c72def99f9 | 71 | //printf("updating_position"); |
ale_carb0ni | 3:c61d0c70eda4 | 72 | game.draw(lcd, pad); |
ale_carb0ni | 3:c61d0c70eda4 | 73 | //printf("draw\n"); |
ale_carb0ni | 7:8d381315f72c | 74 | /*this part is executed if you die, and |
ale_carb0ni | 7:8d381315f72c | 75 | chose to return to the main menu*/ |
ale_carb0ni | 3:c61d0c70eda4 | 76 | if (game.death(lcd, pad) == 2) { |
ale_carb0ni | 7:8d381315f72c | 77 | g_check = 2; |
ale_carb0ni | 7:8d381315f72c | 78 | break; |
ale_carb0ni | 7:8d381315f72c | 79 | /*this part is executed if you die, and |
ale_carb0ni | 7:8d381315f72c | 80 | chose to play again*/ |
ale_carb0ni | 3:c61d0c70eda4 | 81 | } else if (game.death(lcd, pad) == 1) { |
ale_carb0ni | 7:8d381315f72c | 82 | g_check = 1; |
ale_carb0ni | 7:8d381315f72c | 83 | break; |
ale_carb0ni | 3:c61d0c70eda4 | 84 | } |
ale_carb0ni | 3:c61d0c70eda4 | 85 | //printf("death\n"); |
ale_carb0ni | 3:c61d0c70eda4 | 86 | game.point(lcd, pad); |
ale_carb0ni | 3:c61d0c70eda4 | 87 | //printf("point\n"); |
ale_carb0ni | 3:c61d0c70eda4 | 88 | lcd.refresh(); |
ale_carb0ni | 7:8d381315f72c | 89 | /*based on the value of the potentiometer |
ale_carb0ni | 7:8d381315f72c | 90 | the refresh rate can be increased and |
ale_carb0ni | 7:8d381315f72c | 91 | by doing so you can increase the speed*/ |
ale_carb0ni | 7:8d381315f72c | 92 | for(int i = 0; i < pad.read_pot2()*50; i++) { |
ale_carb0ni | 7:8d381315f72c | 93 | wait(0.01); |
ale_carb0ni | 4:17d5b53b8815 | 94 | game.movement(pad); |
ale_carb0ni | 4:17d5b53b8815 | 95 | } |
ale_carb0ni | 3:c61d0c70eda4 | 96 | } |
ale_carb0ni | 3:c61d0c70eda4 | 97 | } |
ale_carb0ni | 3:c61d0c70eda4 | 98 |