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@6:8741d2011692, 2019-03-19 (annotated)
- Committer:
- lewisgw
- Date:
- Tue Mar 19 11:34:21 2019 +0000
- Revision:
- 6:8741d2011692
- Parent:
- 5:eda40cdde3e7
- Child:
- 7:bbc2b75c1418
Added a Map class, which is used to continuously generate moving platforms with gaps along the bottom of the LCD
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 | 6:8741d2011692 | 21 | Map map; |
lewisgw | 5:eda40cdde3e7 | 22 | |
lewisgw | 1:ded7ddd826ce | 23 | |
lewisgw | 1:ded7ddd826ce | 24 | void init_game(); |
lewisgw | 6:8741d2011692 | 25 | void run_game(); |
lewisgw | 6:8741d2011692 | 26 | Line line_1; |
lewisgw | 6:8741d2011692 | 27 | Line line_2; |
lewisgw | 6:8741d2011692 | 28 | Line line_3; |
lewisgw | 6:8741d2011692 | 29 | int length_1; |
lewisgw | 6:8741d2011692 | 30 | int length_2; |
lewisgw | 6:8741d2011692 | 31 | int length_3; |
lewisgw | 1:ded7ddd826ce | 32 | |
lewisgw | 1:ded7ddd826ce | 33 | int main(){ |
lewisgw | 1:ded7ddd826ce | 34 | |
lewisgw | 1:ded7ddd826ce | 35 | init_game(); |
lewisgw | 6:8741d2011692 | 36 | map.init(); |
lewisgw | 6:8741d2011692 | 37 | srand(time(NULL)); |
lewisgw | 5:eda40cdde3e7 | 38 | |
lewisgw | 1:ded7ddd826ce | 39 | while(1){ |
lewisgw | 5:eda40cdde3e7 | 40 | lcd.clear(); |
lewisgw | 6:8741d2011692 | 41 | //run_game(); |
lewisgw | 6:8741d2011692 | 42 | length_1 = (rand() %20)+10; |
lewisgw | 6:8741d2011692 | 43 | length_2 = (rand() %20)+10; |
lewisgw | 6:8741d2011692 | 44 | length_3 = (rand() %20)+10; |
lewisgw | 6:8741d2011692 | 45 | |
lewisgw | 6:8741d2011692 | 46 | |
lewisgw | 6:8741d2011692 | 47 | map.generate_line_1(length_1); |
lewisgw | 6:8741d2011692 | 48 | line_1 = map.get_line_1(); |
lewisgw | 6:8741d2011692 | 49 | |
lewisgw | 6:8741d2011692 | 50 | map.generate_line_2(length_2); |
lewisgw | 6:8741d2011692 | 51 | line_2 = map.get_line_2(); |
lewisgw | 6:8741d2011692 | 52 | |
lewisgw | 6:8741d2011692 | 53 | map.generate_line_3(length_3); |
lewisgw | 6:8741d2011692 | 54 | line_3 = map.get_line_3(); |
lewisgw | 6:8741d2011692 | 55 | |
lewisgw | 6:8741d2011692 | 56 | lcd.drawLine(line_2.x_start,line_2.y,line_2.x_end,line_2.y,FILL_BLACK); |
lewisgw | 6:8741d2011692 | 57 | lcd.drawLine(line_1.x_start,line_1.y,line_1.x_end,line_1.y,FILL_BLACK); |
lewisgw | 6:8741d2011692 | 58 | lcd.drawLine(line_3.x_start,line_3.y,line_3.x_end,line_3.y,FILL_BLACK); |
lewisgw | 6:8741d2011692 | 59 | |
lewisgw | 6:8741d2011692 | 60 | wait(0.1); |
lewisgw | 1:ded7ddd826ce | 61 | lcd.refresh(); |
lewisgw | 1:ded7ddd826ce | 62 | wait(0.01); |
lewisgw | 3:28a3c118e071 | 63 | } |
lewisgw | 3:28a3c118e071 | 64 | } |
lewisgw | 1:ded7ddd826ce | 65 | |
lewisgw | 2:16ae940b0aee | 66 | void init_game() { |
lewisgw | 2:16ae940b0aee | 67 | gamepad.init(); |
lewisgw | 5:eda40cdde3e7 | 68 | game_engine.init(); |
lewisgw | 2:16ae940b0aee | 69 | lcd.init(); |
lewisgw | 2:16ae940b0aee | 70 | lcd.setContrast(0.5); |
lewisgw | 2:16ae940b0aee | 71 | lcd.normalMode(); |
lewisgw | 2:16ae940b0aee | 72 | lcd.setBrightness(0.5); |
lewisgw | 3:28a3c118e071 | 73 | } |
lewisgw | 5:eda40cdde3e7 | 74 | |
lewisgw | 6:8741d2011692 | 75 | void run_game() { |
lewisgw | 6:8741d2011692 | 76 | game_engine.read_input(gamepad); |
lewisgw | 6:8741d2011692 | 77 | game_engine.find_level(); |
lewisgw | 6:8741d2011692 | 78 | game_engine.process_y(); |
lewisgw | 6:8741d2011692 | 79 | game_engine.process_x(); |
lewisgw | 6:8741d2011692 | 80 | game_engine.process_sprite(); |
lewisgw | 6:8741d2011692 | 81 | game_engine.update_lcd(lcd); |
lewisgw | 6:8741d2011692 | 82 | } |