Animated tiles, need some input

Started by
9 comments, last by Nausea 11 years, 3 months ago

OK so I've declared some classes, namely: CMap, CTile and CTileFrame.
If someone could just take a quick look at the declarations and tell me if this is a total clusterf*** or if I am on the right track.


class CMap {

    public:

                            CMap();

                            CMap(std::string _mapName, std::string _tileImageFile, TPUINT32 _numTilesX, TPUINT32 _numTilesY, TPUINT32 _numLayers);

                            ~CMap();


    public:

        TPBOOL TPE_CALL     m_saveMap(std::string _file);

        CMap* TPE_CALL      m_loadMap(std::string _file);

    public:

        void TPE_CALL       m_setMapName(std::string _mapName);

        std::string TPE_CALL m_getMapName();

    public:

        void TPE_CALL       m_setSizeX(TPUINT32 _sizeX);

        void TPE_CALL       m_setSizeY(TPUINT32 _sizeY);

        TPUINT32 TPE_CALL   m_getSizeX();

        TPUINT32 TPE_CALL   m_getSizeY();

    public:

        void TPE_CALL       m_setNumTilesX(TPUINT32 _tilesX);

        void TPE_CALL       m_setNumTilesY(TPUINT32 _tilesY);

        TPUINT32 TPE_CALL   m_getNumTilesX();

        TPUINT32 TPE_CALL   m_getNumTilesY();

        TPUINT32 TPE_CALL   m_getNumTiles();

    public:

        void TPE_CALL       m_setNumLayers(TPUINT32 _numLayers);

        TPUINT32 TPE_CALL   m_getNumLayers();

    public:

        void TPE_CALL       m_setCurrentLayer(TPUINT32 _layer);

        TPUINT32 TPE_CALL   m_getCurrentLayer();

    public:

        void TPE_CALL       m_addTile(TPUINT32 _posX, TPUINT32 _posY);

        void TPE_CALL       m_deleteTile(TPUINT32 _posX, TPUINT32 _posY);

    public:

        std::list    v_tileList;

    private:

        std::string         s_mapName;

        TPUINT32            ui_sizeX;

        TPUINT32            ui_sizeY;

        TPUINT32            ui_numTilesX;

        TPUINT32            ui_numTilesY;

        TPUINT32            ui_numLayers;

        TPUINT32            ui_currentLayer;

};

class CTile {

    public:

                            CTile();

                            ~CTile();

    public:

        void TPE_CALL       m_addTileFrame(TPUINT32 _imgPosX, TPUINT32 _imgPosY);

    public:

        std::string TPE_CALL m_getName();

    public:

        void TPE_CALL       m_setLayer(TPUINT32 _layer);

        TPUINT32 TPE_CALL   m_getLayer();

    public:

        void TPE_CALL       m_setPosX(TPUINT32 _posX);

        void TPE_CALL       m_setPosY(TPUINT32 _posY);

        TPUINT32 TPE_CALL   m_getPosX();

        TPUINT32 TPE_CALL   m_getPosY();

    public:

        TPUINT32 TPE_CALL   m_getType();

    public:

        TPUINT32 TPE_CALL   m_getNumFrames();

        TPUINT32 TPE_CALL   m_getCurrentFrame();

        TPUINT32 TPE_CALL   m_getFrameDelay();

        TPBOOL TPE_CALL     m_isAnimated();

    public:

        std::vector<CTileFrame> v_tileFrameList;


    private:

        std::string         s_tileName;

        TPUINT32            ui_layer;

        TPUINT32            ui_posX;

        TPUINT32            ui_posY;

        TPUINT32            ui_type;

        TPUINT32            ui_numTileFrames;

        TPUINT32            ui_currentFrame;

        TPUINT32            ui_frameDelay;

        TPBOOL              b_animated;

};

class CTileFrame {

    public:

                            CTileFrame();

                            CTileFrame(TPUINT32 _imgPosX, TPUINT32 _imgPosY);

                            ~CTileFrame();

    public:

        TPUINT32 TPE_CALL   m_getPosX();

        TPUINT32 TPE_CALL   m_getPosY();

    private:

        TPUINT32            ui_imgPosX;

        TPUINT32            ui_imgPosY;

};

The CMap class is still missing a image pointer for what tile sprite sheet to use.

The idea is to have the map store the tiles, the tiles will have a list of frames for animation.
I guess the map class will handle the animation of every frame in each tile.

Any input would be appreciated. Thanks

This topic is closed to new replies.

Advertisement