ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

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?

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