Steven Mahasin / Mbed 2 deprecated DreamDungeon

Dependencies:   mbed MotionSensor

Entity/Player/Player.cpp

Committer:
el17sm
Date:
2019-04-23
Revision:
12:a1c1991835ca
Parent:
11:63e54f6e7939
Child:
13:d04a6caba40d

File content as of revision 12:a1c1991835ca:

#include "Player.h"
#include "math.h"

Player::Player(float pos_x, float pos_y){
    moving = false;
    face = 0;
    hp = 0;
    hitbox.width = 6;
    hitbox.height = 5;
    position.x = pos_x;
    position.y = pos_y;
    sprite_size.width = 6;
    sprite_size.height = 12;
    sprite_size.offset_x = 0;
    sprite_size.offset_y = 7;
    frame.count = 0;
    frame.number = 0;
    frame.max = 4;
}

void Player::move(float mapped_x, float mapped_y){
    if(!matrix_collision_test(position.x + player_speed*mapped_x, position.y, 0)){
        position.x += player_speed*mapped_x;
    }
    if(!matrix_collision_test(position.x, position.y - player_speed*mapped_y, 0)){
        position.y -= player_speed*mapped_y;
    }
    moving = false;
    if (abs(mapped_x) + abs(mapped_y) > 0.1f){
        moving = true;
        if (mapped_y < 0 && abs(mapped_y) > abs(mapped_x)){
            face = 2;
        }
        else if (mapped_y > 0 && abs(mapped_y) > abs(mapped_x)){
            face = 0;
        }
        else if (mapped_x > 0 && abs(mapped_x) > abs(mapped_y)){
            face = 1;
        }
        else if (mapped_x < 0 && abs(mapped_x) > abs(mapped_y)){
            face = 3;
        }
        
        if (frame.number < frame.max){
            frame.count++;
        }
        else {
            frame.count = 0;
        }
    }
    else{
        frame.count = 0;
    }
    frame.number = (frame.count/4) % frame.max;
}

int * Player::get_frame(){
    return (int *) sprite_player[face][frame.number];
}

void Player::chkdmg(){
    
}

void Player::buttons(bool button_A, bool button_B, bool button_Y, bool button_X){
    if (button_Y){
        face = 0;
            
    }
    else if (button_B){
        face = 1;
    }
    else if (button_A){
        face = 2;
    }
    else if (button_X){
        face = 3;
    }
}