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-29
Revision:
26:abbc19edc5c1
Parent:
24:26369d92a06a
Child:
27:a1b41626f57c

File content as of revision 26:abbc19edc5c1:

#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;
}

// mutators

void Entity::position_add_x(float change_x)
{
    position.x += change_x;
}
void Entity::position_add_y(float change_y)
{
    position.y += change_y;
}

// 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;
}
int Entity::get_attack()
{
    return attack;
}
int Entity::get_hp()
{
    return hp;
}