A rouge-like rpg, heavily inspired on the binding of isaac. Running on a FRDM-K64F Mbed board. C++.

Dependencies:   mbed MotionSensor

Entity/Entity.cpp

Committer:
el17sm
Date:
2019-04-25
Revision:
20:6405835af6e2
Parent:
14:3361879490b2

File content as of revision 20:6405835af6e2:

#include "Entity.h"

// functions
void Entity::undo_move_x(bool status_x){
    if (status_x){
        position.x = prev_pos.x;
    }
}
void Entity::undo_move_y(bool status_y){
    if (status_y){
        position.y = prev_pos.y;
    }
}
void Entity::update_prev_pos(){prev_pos = position;}

bool Entity::matrix_collision_test(float pos_x, float pos_y, int map_no){
    for (int j = pos_y; j < (int)pos_y + hitbox.height; j++){
        for(int i = pos_x; i < (int)pos_x + hitbox.width; i++){
            if ((j>=48) || (i>=84) || (j<0) || (i<0)) {}
            else if ((level_map[0][j][i] == 1)) {
                return true;
            }
        }
    }
    return false;
}

void Entity::take_damage(int damage){
    hp -= damage;
}

bool Entity::death_check(){
    if (hp <= 0){
        return true;
    }
    return false;
}

// mutators

// accessors
bool Entity::get_moving(){return moving;}
int Entity::get_hitbox_width(){return hitbox.width;}
int Entity::get_hitbox_height(){return hitbox.height;}
int Entity::get_face(){return face;}
int Entity::get_sprite_width(){return sprite_size.width;}
int Entity::get_sprite_height(){return sprite_size.height;}
int Entity::get_offset_x(){return sprite_size.offset_x;}
int Entity::get_offset_y(){return sprite_size.offset_y;}
int Entity::get_pos_x(){return position.x;}
int Entity::get_pos_y(){return position.y;}
int Entity::get_prev_pos_x(){return prev_pos.x;}
int Entity::get_prev_pos_y(){return prev_pos.y;}