Hola estoy elaborando el código de mi juego y he descubierto que me ha echo falta el polimorfismo para trabajar bien con las clases os lo pongo y me decís si podeís, si lo estoy haciendo bien saludos!.
scenemanager#ifndef _scenemanager_
#define _scenemanager_
#include <SFML/Graphics.hpp>
#include <vector>
#include "scene.hpp"
class SceneManager {
public:
SceneManager();
~SceneManager();
void Add(Scene *scene);
void Update(sf::RenderWindow &window);
void ZoomOut(float);
void ZoomIn(float);
private:
float ZoomScale;
bool isZoomChange;
int mi;
std::vector<Scene*> mScenes;
};
#endif // _scenemanager_
scene#ifndef _scene_
#define _scene_
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
class Scene : public sf::Sprite {// Hereda todas las funciones y miembros de sprite
public:
Scene();
~Scene();
virtual void Update();
private:
};
#endif // _scene_
sceneactor#ifndef _sceneactor_
#define _sceneactor_
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <vector>
#include <iostream>
#include <fstream>
#include "scene.hpp"
class SceneActor : public Scene {
public:
SceneActor();
~SceneActor();
bool loadFromFile(string name);
bool Add(string name,sf::IntRect rect,int time);// añade una textura al vector
void Update();// actualiza el sprite a una textura necesaria
private:
int NumberTextures;
sf::Clock mClock;//Reloj "temporal"
unsigned int imt;// iterador del vector de texturas
vector<sf::Texture> mt;// texturas
vector<int> mTime;// tiempo que dura cada frame ms
};
#endif // _sceneactor_
PD: ignoren los includes son provisionales xDD