⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 map.h.svn-base

📁 坦克大战游戏完整全套源代码
💻 SVN-BASE
字号:
#ifndef GAME_MAP_H
#define GAME_MAP_H

#include <cassert>
#include <vector>
#include <list>

#include "common/attachEntity.h"

#include "collisionDef.h"
#include "routeMap.h"

using std::vector;
using std::list;
using cAni::Point2f;

class Map : public Entity
{
public:
    enum EntityInterfaceIds
    {
        EII_QueryEntity = Entity::NumEntityInterfaceIds,

        NumEntityInterfaceIds,
    };
    Map(cAni::iAnimResManager &arm);
    virtual ~Map();
    void clear();
    /*
    void loadMap(const char *baseObjs, const char *mapfile)
    {
        
    }
    */
    void randomizeMap(const Rectf &range, const char *baseObjs, size_t wetland, size_t stone, size_t box);
    void findPath(list<Point2f> &result, const Point2f &fromPos, const Point2f &toPos) const
    {
        rmap.FindPath(result, fromPos, toPos);
    }
    virtual iEntity* getEntityInterface(EntityInterfaceId id)
    {
        switch(id)
        {
        case EII_QueryEntity:
            return &mapQueriers;
        case Entity::EII_GraphicEntity:
            return &graphicEntity;
        }
        return 0;
    }
    class GraphicEntity : public iGraphicEntity
    {
    public:
        GraphicEntity(Entity &e, cAni::iAnimResManager &arm) : iGraphicEntity(e, arm), tex(0)
        {
        }
        virtual ~GraphicEntity()
        {
            if (tex)
            {
                HGE *hge = hgeCreate(HGE_VERSION);
                hge->Texture_Free(tex);
                tex = 0;
                hge->Release();
            }
        }
        virtual void render(float gameTime, float deltaTime);
    protected:
        Map &getEntity()
        {
            return *(Map*)&entity;
        }
        HTEXTURE tex;
    };
    const RouteMap &getRouteMap() const
    {
        return rmap;
    }
protected:
    void addMapObject(Entity &obj);
    vector<Entity*> objects;
    cAni::iAnimResManager *animResManager;

    RouteMap rmap;

    iMultiAttacheeEntity mapQueriers;
    GraphicEntity graphicEntity;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -