ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }