ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Sun Mar 17 14:45:37 2019 +0000
Revision:
5:eda40cdde3e7
Parent:
4:ce4eea1c2a28
Child:
7:bbc2b75c1418
Same functionality as last commit, but now organised with a game engine class to process inputs and outputs

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 5:eda40cdde3e7 14 }
lewisgw 5:eda40cdde3e7 15
lewisgw 5:eda40cdde3e7 16 void Engine::read_input(Gamepad &gamepad) {
lewisgw 5:eda40cdde3e7 17 _input.coord = gamepad.get_mapped_coord();
lewisgw 5:eda40cdde3e7 18 _input.A_flag = gamepad.check_event(Gamepad::A_PRESSED);
lewisgw 5:eda40cdde3e7 19 }
lewisgw 5:eda40cdde3e7 20
lewisgw 5:eda40cdde3e7 21 void Engine::process_y() {
lewisgw 5:eda40cdde3e7 22 _skater.set_y_position( _input.A_flag, _jump_counter, _level );
lewisgw 5:eda40cdde3e7 23 _y = _skater.get_y_position();
lewisgw 5:eda40cdde3e7 24 _jump_counter = _skater.get_jump_counter();
lewisgw 5:eda40cdde3e7 25 }
lewisgw 5:eda40cdde3e7 26
lewisgw 5:eda40cdde3e7 27 void Engine::process_x() {
lewisgw 5:eda40cdde3e7 28 _skater.set_x_position( _input.coord.x, _moving_counter, _direction, _input.coord.y );
lewisgw 5:eda40cdde3e7 29 _x = _skater.get_x_position();
lewisgw 5:eda40cdde3e7 30 _moving_counter = _skater.get_moving_counter();
lewisgw 5:eda40cdde3e7 31 }
lewisgw 5:eda40cdde3e7 32
lewisgw 5:eda40cdde3e7 33 void Engine::process_sprite() {
lewisgw 5:eda40cdde3e7 34 _sprite = _skater.get_sprite_value();
lewisgw 5:eda40cdde3e7 35 _direction = _skater.get_direction();
lewisgw 5:eda40cdde3e7 36 }
lewisgw 5:eda40cdde3e7 37
lewisgw 5:eda40cdde3e7 38
lewisgw 5:eda40cdde3e7 39 void Engine::find_level() {
lewisgw 5:eda40cdde3e7 40 if((_x >= 1 && _x <= 30 && _y < 15) || (_x >= 45 && _x <= 80 && _y < 15)){
lewisgw 5:eda40cdde3e7 41 _level = 1;
lewisgw 5:eda40cdde3e7 42 } else {
lewisgw 5:eda40cdde3e7 43 _level = 0;
lewisgw 5:eda40cdde3e7 44 }
lewisgw 5:eda40cdde3e7 45 }
lewisgw 5:eda40cdde3e7 46
lewisgw 5:eda40cdde3e7 47
lewisgw 5:eda40cdde3e7 48 void Engine::update_lcd(N5110 &lcd){
lewisgw 5:eda40cdde3e7 49 _skate_sprite = _skater.get_sprite(_sprite);
lewisgw 5:eda40cdde3e7 50 lcd.drawSprite(_x,_y,17,10,(int *)_skate_sprite);
lewisgw 5:eda40cdde3e7 51 lcd.drawLine(5,40,80,40,FILL_BLACK);
lewisgw 5:eda40cdde3e7 52 lcd.drawLine(5,22,30,22,FILL_BLACK);
lewisgw 5:eda40cdde3e7 53 lcd.drawLine(50,22,80,22,FILL_BLACK);
lewisgw 5:eda40cdde3e7 54 }