43 lines
921 B
C++
43 lines
921 B
C++
#include "enemy_path.h"
|
|
#include <fstream>
|
|
#include <sstream>
|
|
|
|
// Constructor
|
|
EnemyPath::EnemyPath(enemy_t enemy, SDL_Point p1, SDL_Point p2) : Enemy(enemy)
|
|
{
|
|
// Obten el resto de valores
|
|
this->p1 = p1;
|
|
this->p2 = p2;
|
|
}
|
|
|
|
// Destructor
|
|
EnemyPath::~EnemyPath()
|
|
{
|
|
}
|
|
|
|
// Actualiza las variables del objeto
|
|
void EnemyPath::update()
|
|
{
|
|
sprite->update();
|
|
sprite->animate();
|
|
checkPath();
|
|
collider = getRect();
|
|
}
|
|
|
|
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
|
|
void EnemyPath::checkPath()
|
|
{
|
|
// Comprueba los límites horizontales
|
|
if (sprite->getPosX() > p2.x || sprite->getPosX() < p1.x)
|
|
{
|
|
sprite->setVelX(sprite->getVelX() * (-1));
|
|
sprite->flip();
|
|
}
|
|
|
|
// Comprueba los límites verticales
|
|
if (sprite->getPosY() > p2.y || sprite->getPosY() < p1.y)
|
|
{
|
|
sprite->setVelY(sprite->getVelY() * (-1));
|
|
sprite->flip();
|
|
}
|
|
} |