75 lines
1.3 KiB
C++
75 lines
1.3 KiB
C++
#include "actor.h"
|
|
#include <fstream>
|
|
#include <sstream>
|
|
|
|
// Constructor
|
|
Actor::Actor()
|
|
{
|
|
}
|
|
|
|
// Constructor
|
|
Actor::Actor(actor_t actor)
|
|
{
|
|
// Obten punteros a objetos
|
|
asset = actor.asset;
|
|
renderer = actor.renderer;
|
|
|
|
// Crea objetos
|
|
texture = new Texture(renderer, asset->get(actor.tileset));
|
|
sprite = new AnimatedSprite(texture, renderer, asset->get(actor.animation));
|
|
|
|
// Obten el resto de valores
|
|
sprite->setPosX(actor.x);
|
|
sprite->setPosY(actor.y);
|
|
sprite->setWidth(actor.w);
|
|
sprite->setHeight(actor.h);
|
|
|
|
sprite->setVelX(actor.vx);
|
|
sprite->setVelY(actor.vy);
|
|
|
|
sprite->setFlip(actor.vx > 0 ? SDL_FLIP_NONE : SDL_FLIP_HORIZONTAL);
|
|
this->name = actor.name;
|
|
}
|
|
|
|
// Destructor
|
|
Actor::~Actor()
|
|
{
|
|
texture->unload();
|
|
delete texture;
|
|
texture = nullptr;
|
|
|
|
delete sprite;
|
|
sprite = nullptr;
|
|
}
|
|
|
|
// Pinta el enemigo en pantalla
|
|
void Actor::render()
|
|
{
|
|
sprite->render();
|
|
}
|
|
|
|
// Actualiza las variables del objeto
|
|
void Actor::update()
|
|
{
|
|
sprite->update();
|
|
sprite->animate();
|
|
}
|
|
|
|
// Obtiene el rectangulo de colision del enemigo
|
|
SDL_Rect &Actor::getCollider()
|
|
{
|
|
collider = sprite->getRect();
|
|
return collider;
|
|
}
|
|
|
|
// Obtiene el nombre del actor
|
|
actor_name_e Actor::getName()
|
|
{
|
|
return name;
|
|
}
|
|
|
|
// Obtiene el valor de la variable
|
|
int Actor::getIncX()
|
|
{
|
|
return sprite->getIncX();
|
|
} |