Creando subclases de actors

This commit is contained in:
2022-08-26 07:24:22 +02:00
parent 6b2901cebc
commit aea71599ff
3 changed files with 71 additions and 1 deletions

View File

@@ -27,7 +27,7 @@ struct actor_t
// Clase Actor // Clase Actor
class Actor class Actor
{ {
private: protected:
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
LTexture *texture; // Textura con los graficos del enemigo LTexture *texture; // Textura con los graficos del enemigo

View File

@@ -0,0 +1,39 @@
#include "actor_moving_platform.h"
#include <fstream>
#include <sstream>
// Constructor
ActorMovingPlatform::ActorMovingPlatform()
{
}
// Destructor
ActorMovingPlatform::~ActorMovingPlatform()
{
}
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
void ActorMovingPlatform::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();
}
}
// Actualiza las variables del objeto
void ActorMovingPlatform::update()
{
checkPath();
sprite->update();
sprite->animate();
}

View File

@@ -0,0 +1,31 @@
#pragma once
#include <SDL2/SDL.h>
#include "actor.h"
#include <string>
#ifndef ACTOR_MOVING_PLATFORM_H
#define ACTOR_MOVING_PLATFORM_H
// Clase Actor
class ActorMovingPlatform : public Actor
{
private:
SDL_Point p1; // Punto 1 (inicial) de la ruta
SDL_Point p2; // Punto 2 (final) de la ruta
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
void checkPath();
public:
// Constructor
ActorMovingPlatform();
// Destructor
~ActorMovingPlatform();
// Actualiza las variables del objeto
void update();
};
#endif