前言
生活就是这样,起起落落,你认为的结束也许就是另一片天地的开始。
上次我们绘制了元素块,这次就要绘制一个大的东西了,游戏地图,也是游戏中最重要的一部分了,下面来仔细的设计一下。
正题
一个地图有许多小的元素块组成,介于地图是2D方形的,组织起来比较容易,一个地图由许多块构成,把这些块排列起来就是地图,这里我们多考虑一点,魔塔中,地图块分为地面,和地面上的怪物,所以我把地图设置为两层,一层为地皮贴图,一层为地面上的墙和怪物和玩家,这也免去了判断各种地图快到底是什么的麻烦,绘制也省事了。
建立一个地图类,需要保存地图尺寸,地图块的指针
struct Size
{
int x,y,z;
Size(){};
Size(int _x,int _y,int _z):x(_x),y(_y),z(_z){}
};
class GMap
{
protected:
Size size;
Size pos;
GameBlock *** map;
public:
GMap();
//设置地图尺寸
void setSize(Size _size,Size _pos){size = _size; pos = _pos;}
//绘制地图
void draw();
//地图初始化
void init(Size _size,Size _pos);
~GMap();
};
这样地图类设计好了,可以进行绘制,先实验一下。
现在我把地面贴图加载上,这回看起来就有点意思了。
这回就是我们的地图。