ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Wed Mar 20 17:56:55 2019 +0000
Revision:
7:bbc2b75c1418
Parent:
5:eda40cdde3e7
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 5:eda40cdde3e7 1 #include "Engine.h"
lewisgw 5:eda40cdde3e7 2
lewisgw 5:eda40cdde3e7 3 Engine::Engine(){}
lewisgw 5:eda40cdde3e7 4
lewisgw 5:eda40cdde3e7 5 Engine::~Engine(){}
lewisgw 5:eda40cdde3e7 6
lewisgw 5:eda40cdde3e7 7 void Engine::init() {
lewisgw 5:eda40cdde3e7 8 _moving_counter = 0;
lewisgw 5:eda40cdde3e7 9 _jump_counter = 0;
lewisgw 5:eda40cdde3e7 10 _direction = Left;
lewisgw 5:eda40cdde3e7 11 _level = 0;
lewisgw 5:eda40cdde3e7 12 _x = 40;
lewisgw 5:eda40cdde3e7 13 _y = 40;
lewisgw 7:bbc2b75c1418 14
lewisgw 7:bbc2b75c1418 15 _map.init();
lewisgw 7:bbc2b75c1418 16 srand(time(NULL));
lewisgw 5:eda40cdde3e7 17 }
lewisgw 5:eda40cdde3e7 18
lewisgw 5:eda40cdde3e7 19 void Engine::read_input(Gamepad &gamepad) {
lewisgw 5:eda40cdde3e7 20 _input.coord = gamepad.get_mapped_coord();
lewisgw 5:eda40cdde3e7 21 _input.A_flag = gamepad.check_event(Gamepad::A_PRESSED);
lewisgw 5:eda40cdde3e7 22 }
lewisgw 5:eda40cdde3e7 23
lewisgw 5:eda40cdde3e7 24 void Engine::process_y() {
lewisgw 5:eda40cdde3e7 25 _skater.set_y_position( _input.A_flag, _jump_counter, _level );
lewisgw 5:eda40cdde3e7 26 _y = _skater.get_y_position();
lewisgw 5:eda40cdde3e7 27 _jump_counter = _skater.get_jump_counter();
lewisgw 5:eda40cdde3e7 28 }
lewisgw 5:eda40cdde3e7 29
lewisgw 7:bbc2b75c1418 30 void Engine::process_x(int t) {
lewisgw 5:eda40cdde3e7 31 _skater.set_x_position( _input.coord.x, _moving_counter, _direction, _input.coord.y );
lewisgw 5:eda40cdde3e7 32 _x = _skater.get_x_position();
lewisgw 5:eda40cdde3e7 33 _moving_counter = _skater.get_moving_counter();
lewisgw 7:bbc2b75c1418 34
lewisgw 7:bbc2b75c1418 35 if( (t % 6 == 0 || t % 8 == 0) && (_input.coord.x > -0.1) ) {
lewisgw 7:bbc2b75c1418 36 _moving_counter--;
lewisgw 7:bbc2b75c1418 37 }
lewisgw 5:eda40cdde3e7 38 }
lewisgw 5:eda40cdde3e7 39
lewisgw 5:eda40cdde3e7 40 void Engine::process_sprite() {
lewisgw 5:eda40cdde3e7 41 _sprite = _skater.get_sprite_value();
lewisgw 5:eda40cdde3e7 42 _direction = _skater.get_direction();
lewisgw 5:eda40cdde3e7 43 }
lewisgw 5:eda40cdde3e7 44
lewisgw 5:eda40cdde3e7 45
lewisgw 5:eda40cdde3e7 46 void Engine::find_level() {
lewisgw 5:eda40cdde3e7 47 if((_x >= 1 && _x <= 30 && _y < 15) || (_x >= 45 && _x <= 80 && _y < 15)){
lewisgw 5:eda40cdde3e7 48 _level = 1;
lewisgw 5:eda40cdde3e7 49 } else {
lewisgw 5:eda40cdde3e7 50 _level = 0;
lewisgw 5:eda40cdde3e7 51 }
lewisgw 5:eda40cdde3e7 52 }
lewisgw 7:bbc2b75c1418 53
lewisgw 7:bbc2b75c1418 54 void Engine::generate_map() {
lewisgw 7:bbc2b75c1418 55 _length_1 = (rand() %20)+10;
lewisgw 7:bbc2b75c1418 56 _length_2 = (rand() %20)+10;
lewisgw 7:bbc2b75c1418 57 _length_3 = (rand() %20)+10;
lewisgw 7:bbc2b75c1418 58
lewisgw 7:bbc2b75c1418 59 _map.generate_line_1(_length_1);
lewisgw 7:bbc2b75c1418 60 _line_1 = _map.get_line_1();
lewisgw 7:bbc2b75c1418 61
lewisgw 7:bbc2b75c1418 62 _map.generate_line_2(_length_2);
lewisgw 7:bbc2b75c1418 63 _line_2 = _map.get_line_2();
lewisgw 7:bbc2b75c1418 64
lewisgw 7:bbc2b75c1418 65 _map.generate_line_3(_length_3);
lewisgw 7:bbc2b75c1418 66 _line_3 = _map.get_line_3();
lewisgw 7:bbc2b75c1418 67
lewisgw 7:bbc2b75c1418 68 }
lewisgw 5:eda40cdde3e7 69
lewisgw 5:eda40cdde3e7 70
lewisgw 5:eda40cdde3e7 71 void Engine::update_lcd(N5110 &lcd){
lewisgw 5:eda40cdde3e7 72 _skate_sprite = _skater.get_sprite(_sprite);
lewisgw 5:eda40cdde3e7 73 lcd.drawSprite(_x,_y,17,10,(int *)_skate_sprite);
lewisgw 7:bbc2b75c1418 74 lcd.drawLine(_line_2.x_start,_line_2.y,_line_2.x_end,_line_2.y,FILL_BLACK);
lewisgw 7:bbc2b75c1418 75 lcd.drawLine(_line_1.x_start,_line_1.y,_line_1.x_end,_line_1.y,FILL_BLACK);
lewisgw 7:bbc2b75c1418 76 lcd.drawLine(_line_3.x_start,_line_3.y,_line_3.x_end,_line_3.y,FILL_BLACK);
lewisgw 5:eda40cdde3e7 77 }