ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Wed Mar 20 17:56:55 2019 +0000
Revision:
7:bbc2b75c1418
Parent:
6:8741d2011692
Child:
8:5327418f823a
Map is now implemented in the engine class. Skater and random size moving platforms (from map) now exist together. Skater automatically moves with platforms.

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 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 6:8741d2011692 94 game_engine.read_input(gamepad);
lewisgw 7:bbc2b75c1418 95
lewisgw 7:bbc2b75c1418 96 if( t % 10 == 0 ){
lewisgw 7:bbc2b75c1418 97 game_engine.generate_map();
lewisgw 7:bbc2b75c1418 98 }
lewisgw 7:bbc2b75c1418 99
lewisgw 6:8741d2011692 100 game_engine.find_level();
lewisgw 6:8741d2011692 101 game_engine.process_y();
lewisgw 7:bbc2b75c1418 102 game_engine.process_x(t);
lewisgw 6:8741d2011692 103 game_engine.process_sprite();
lewisgw 6:8741d2011692 104 game_engine.update_lcd(lcd);
lewisgw 6:8741d2011692 105 }