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
main.cpp@8:5327418f823a, 2019-03-23 (annotated)
- Committer:
- lewisgw
- Date:
- Sat Mar 23 15:36:56 2019 +0000
- Revision:
- 8:5327418f823a
- Parent:
- 7:bbc2b75c1418
- Child:
- 9:fff2009f826e
Skater can fall between gaps in the platforms. If skater falls between gaps or goes of the screen, a reset function resets the game.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lewisgw | 0:d74302f8f847 | 1 | /* |
lewisgw | 0:d74302f8f847 | 2 | ELEC2645 Embedded Systems Project |
lewisgw | 0:d74302f8f847 | 3 | School of Electronic & Electrical Engineering University of Leeds |
lewisgw | 0:d74302f8f847 | 4 | Name: Lewis Wooltorton |
lewisgw | 0:d74302f8f847 | 5 | Username: el17lw |
lewisgw | 0:d74302f8f847 | 6 | Student ID Number: 201122085 Date: March 2019 |
lewisgw | 1:ded7ddd826ce | 7 | */ |
lewisgw | 1:ded7ddd826ce | 8 | |
lewisgw | 1:ded7ddd826ce | 9 | #include "N5110.h" |
lewisgw | 1:ded7ddd826ce | 10 | #include "Gamepad.h" |
lewisgw | 2:16ae940b0aee | 11 | #include "Skateboarder.h" |
lewisgw | 5:eda40cdde3e7 | 12 | #include "Engine.h" |
lewisgw | 6:8741d2011692 | 13 | #include "Map.h" |
lewisgw | 6:8741d2011692 | 14 | #include <cstdlib> |
lewisgw | 6:8741d2011692 | 15 | #include <ctime> |
lewisgw | 1:ded7ddd826ce | 16 | #include <cmath> |
lewisgw | 1:ded7ddd826ce | 17 | |
lewisgw | 1:ded7ddd826ce | 18 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
lewisgw | 2:16ae940b0aee | 19 | Gamepad gamepad; |
lewisgw | 5:eda40cdde3e7 | 20 | Engine game_engine; |
lewisgw | 7:bbc2b75c1418 | 21 | //Map map; |
lewisgw | 5:eda40cdde3e7 | 22 | |
lewisgw | 1:ded7ddd826ce | 23 | |
lewisgw | 1:ded7ddd826ce | 24 | void init_game(); |
lewisgw | 7:bbc2b75c1418 | 25 | void run_game(int t); |
lewisgw | 7:bbc2b75c1418 | 26 | |
lewisgw | 7:bbc2b75c1418 | 27 | /* |
lewisgw | 6:8741d2011692 | 28 | Line line_1; |
lewisgw | 6:8741d2011692 | 29 | Line line_2; |
lewisgw | 6:8741d2011692 | 30 | Line line_3; |
lewisgw | 6:8741d2011692 | 31 | int length_1; |
lewisgw | 6:8741d2011692 | 32 | int length_2; |
lewisgw | 6:8741d2011692 | 33 | int length_3; |
lewisgw | 7:bbc2b75c1418 | 34 | */ |
lewisgw | 7:bbc2b75c1418 | 35 | |
lewisgw | 7:bbc2b75c1418 | 36 | int t = 0; |
lewisgw | 1:ded7ddd826ce | 37 | |
lewisgw | 1:ded7ddd826ce | 38 | int main(){ |
lewisgw | 1:ded7ddd826ce | 39 | |
lewisgw | 1:ded7ddd826ce | 40 | init_game(); |
lewisgw | 7:bbc2b75c1418 | 41 | /* |
lewisgw | 6:8741d2011692 | 42 | map.init(); |
lewisgw | 6:8741d2011692 | 43 | srand(time(NULL)); |
lewisgw | 7:bbc2b75c1418 | 44 | */ |
lewisgw | 1:ded7ddd826ce | 45 | while(1){ |
lewisgw | 5:eda40cdde3e7 | 46 | lcd.clear(); |
lewisgw | 7:bbc2b75c1418 | 47 | |
lewisgw | 7:bbc2b75c1418 | 48 | /* |
lewisgw | 7:bbc2b75c1418 | 49 | |
lewisgw | 7:bbc2b75c1418 | 50 | run_game(); |
lewisgw | 6:8741d2011692 | 51 | length_1 = (rand() %20)+10; |
lewisgw | 6:8741d2011692 | 52 | length_2 = (rand() %20)+10; |
lewisgw | 6:8741d2011692 | 53 | length_3 = (rand() %20)+10; |
lewisgw | 6:8741d2011692 | 54 | |
lewisgw | 6:8741d2011692 | 55 | |
lewisgw | 6:8741d2011692 | 56 | map.generate_line_1(length_1); |
lewisgw | 6:8741d2011692 | 57 | line_1 = map.get_line_1(); |
lewisgw | 6:8741d2011692 | 58 | |
lewisgw | 6:8741d2011692 | 59 | map.generate_line_2(length_2); |
lewisgw | 6:8741d2011692 | 60 | line_2 = map.get_line_2(); |
lewisgw | 6:8741d2011692 | 61 | |
lewisgw | 6:8741d2011692 | 62 | map.generate_line_3(length_3); |
lewisgw | 6:8741d2011692 | 63 | line_3 = map.get_line_3(); |
lewisgw | 6:8741d2011692 | 64 | |
lewisgw | 6:8741d2011692 | 65 | lcd.drawLine(line_2.x_start,line_2.y,line_2.x_end,line_2.y,FILL_BLACK); |
lewisgw | 6:8741d2011692 | 66 | lcd.drawLine(line_1.x_start,line_1.y,line_1.x_end,line_1.y,FILL_BLACK); |
lewisgw | 6:8741d2011692 | 67 | lcd.drawLine(line_3.x_start,line_3.y,line_3.x_end,line_3.y,FILL_BLACK); |
lewisgw | 6:8741d2011692 | 68 | |
lewisgw | 6:8741d2011692 | 69 | wait(0.1); |
lewisgw | 7:bbc2b75c1418 | 70 | |
lewisgw | 7:bbc2b75c1418 | 71 | */ |
lewisgw | 7:bbc2b75c1418 | 72 | |
lewisgw | 7:bbc2b75c1418 | 73 | run_game(t); |
lewisgw | 7:bbc2b75c1418 | 74 | //wait(0.1); |
lewisgw | 1:ded7ddd826ce | 75 | lcd.refresh(); |
lewisgw | 1:ded7ddd826ce | 76 | wait(0.01); |
lewisgw | 7:bbc2b75c1418 | 77 | t++; |
lewisgw | 7:bbc2b75c1418 | 78 | if(t == 100) { |
lewisgw | 7:bbc2b75c1418 | 79 | t = 0; |
lewisgw | 7:bbc2b75c1418 | 80 | } |
lewisgw | 3:28a3c118e071 | 81 | } |
lewisgw | 3:28a3c118e071 | 82 | } |
lewisgw | 1:ded7ddd826ce | 83 | |
lewisgw | 2:16ae940b0aee | 84 | void init_game() { |
lewisgw | 2:16ae940b0aee | 85 | gamepad.init(); |
lewisgw | 5:eda40cdde3e7 | 86 | game_engine.init(); |
lewisgw | 2:16ae940b0aee | 87 | lcd.init(); |
lewisgw | 2:16ae940b0aee | 88 | lcd.setContrast(0.5); |
lewisgw | 2:16ae940b0aee | 89 | lcd.normalMode(); |
lewisgw | 2:16ae940b0aee | 90 | lcd.setBrightness(0.5); |
lewisgw | 3:28a3c118e071 | 91 | } |
lewisgw | 5:eda40cdde3e7 | 92 | |
lewisgw | 7:bbc2b75c1418 | 93 | void run_game(int t) { |
lewisgw | 8:5327418f823a | 94 | game_engine.check_reset(); |
lewisgw | 6:8741d2011692 | 95 | game_engine.read_input(gamepad); |
lewisgw | 7:bbc2b75c1418 | 96 | |
lewisgw | 7:bbc2b75c1418 | 97 | if( t % 10 == 0 ){ |
lewisgw | 7:bbc2b75c1418 | 98 | game_engine.generate_map(); |
lewisgw | 7:bbc2b75c1418 | 99 | } |
lewisgw | 7:bbc2b75c1418 | 100 | |
lewisgw | 6:8741d2011692 | 101 | game_engine.find_level(); |
lewisgw | 6:8741d2011692 | 102 | game_engine.process_y(); |
lewisgw | 7:bbc2b75c1418 | 103 | game_engine.process_x(t); |
lewisgw | 6:8741d2011692 | 104 | game_engine.process_sprite(); |
lewisgw | 6:8741d2011692 | 105 | game_engine.update_lcd(lcd); |
lewisgw | 6:8741d2011692 | 106 | } |