ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Minerengine.cpp

Committer:
el17arm
Date:
2019-03-28
Revision:
12:adf4ec04ced2
Parent:
11:61f28e3448d3
Child:
13:3bf02cb26d6d

File content as of revision 12:adf4ec04ced2:

#include "Minerengine.h"

int _x;
int _y;

Minerengine::Minerengine()
{
}

Minerengine::~Minerengine()
{
}

void Minerengine::miner_init()
{
    _x = 3;
    _y = 33;
}

Vector2D Minerengine::get_pos()
{
    Vector2D p = {_x,_y};
    printf("p.x = %f \n", p.x);
    return p;
}

void Minerengine::read_direction(Gamepad &pad)
{
    _d = pad.get_direction();
}

void Minerengine::miner_collision(N5110 &lcd)
{
    /*_right_collision = lcd.getPixel(_x+3,_y) + lcd.getPixel(_x+3,_y+3) +
                       lcd.getPixel(_x+3,_y+5) + lcd.getPixel(_x+3,_y+7);

    _left_collision = lcd.getPixel(_x-1,_y) + lcd.getPixel(_x-1,_y+3) +
                      lcd.getPixel(_x-1,_y+5) + lcd.getPixel(_x-1,_y+7);*/

    _jump = (lcd.getPixel(_x+4,_y+8) || lcd.getPixel(_x-1,_y+8));

    _stop_jump = lcd.getPixel(_x,_y-2) || lcd.getPixel(_x+3,_y-2);
    
    _gravity = !lcd.getPixel(_x,_y+8) && !lcd.getPixel(_x+2, _y+8);
}

void Minerengine::miner_move()
{
    if (_d==E && _x < WIDTH-3) {
        _x++;
        _direction = 1; //chooses right facing sprite
    }
    if (_d==W && _x > 0) {
        _x--;
        _direction = 0; //chooses left facing sprite
    }
}

void Minerengine::miner_jump(N5110 &lcd, Gamepad &pad)
{
    if(pad.check_event(Gamepad::A_PRESSED) && _jump==1) {
        int i=0;
        while(i < 8){
            _y = _y--;
            i++; 
        }
    }
}

void Minerengine::miner_draw(N5110 &lcd)
{
    if (_direction == 1) {
        lcd.drawSprite(_x,_y,8,3,(int *)miner_right);
    }
    if (_direction == 0) {
        lcd.drawSprite(_x,_y,8,3,(int *)miner_left);
    }
}

void Minerengine::miner_gravity(N5110 &lcd)
{
    if(_gravity == 1) {
        _y = _y + 1;
    }
}

int Minerengine::test()
{
    int t = _x;
    printf("t = %i \n", t);
    return t;
}