Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: anonimo12121 en 21 Febrero 2013, 19:59 pm



Título: Opiniones Polimorfismo
Publicado por: anonimo12121 en 21 Febrero 2013, 19:59 pm
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
Código
  1. #ifndef _scenemanager_
  2. #define _scenemanager_
  3. #include <SFML/Graphics.hpp>
  4. #include <vector>
  5.  
  6. #include "scene.hpp"
  7. class SceneManager {
  8.    public:
  9.        SceneManager();
  10.        ~SceneManager();
  11.        void Add(Scene *scene);
  12.        void Update(sf::RenderWindow &window);
  13.        void ZoomOut(float);
  14.        void ZoomIn(float);
  15.    private:
  16.        float ZoomScale;
  17.        bool isZoomChange;
  18.        int mi;
  19.        std::vector<Scene*> mScenes;
  20. };
  21.  
  22. #endif // _scenemanager_
scene
Código
  1. #ifndef _scene_
  2. #define _scene_
  3. #include <SFML/Graphics.hpp>
  4. #include <SFML/System.hpp>
  5. #include <vector>
  6. #include <iostream>
  7. #include <fstream>
  8. using namespace std;
  9. class Scene : public sf::Sprite {// Hereda todas las funciones y miembros de sprite
  10.    public:
  11.        Scene();
  12.        ~Scene();
  13.        virtual void Update();
  14.    private:
  15.  
  16.  
  17.  
  18. };
  19.  
  20.  
  21.  
  22. #endif // _scene_
sceneactor
Código
  1. #ifndef _sceneactor_
  2. #define _sceneactor_
  3.  
  4. #include <SFML/Graphics.hpp>
  5. #include <SFML/System.hpp>
  6. #include <vector>
  7. #include <iostream>
  8. #include <fstream>
  9. #include "scene.hpp"
  10. class SceneActor : public Scene {
  11.    public:
  12.        SceneActor();
  13.        ~SceneActor();
  14.        bool loadFromFile(string name);
  15.        bool Add(string name,sf::IntRect rect,int time);// añade una textura al vector
  16.        void Update();// actualiza el sprite a una textura necesaria
  17.    private:
  18.        int NumberTextures;
  19.        sf::Clock mClock;//Reloj "temporal"
  20.        unsigned int imt;// iterador del vector de texturas
  21.        vector<sf::Texture> mt;// texturas
  22.        vector<int> mTime;// tiempo que dura cada frame ms
  23.  
  24. };
  25.  
  26. #endif // _sceneactor_

PD: ignoren los includes son provisionales xDD