|
|
最近想做个地图编辑器,发现我现在很多知识不懂。
地图的tile分为动态和静态的。比如河流是动态的tile。
在做地图编辑器的时候必须得把河流动态的表现出来,并放在可供我们选取的列表里面。
还有就是象rpg游戏人物的每个动作图象资源该怎么组织一下,调用才灵活,比如人物的
图象有8个方向的行走图象,攻击图象,那么现在要有个类,里面有所有的surface的指针
数组,然后外部通过设置播放的顺序,surface就按顺序显示出来。
enum SHOWTYPE
{
ST_SHOWONCE=1,//播放标志,放一次
ST_CIRCLE=2,//循环放
};
class CActiveDS
{
public:
void Update(enum SHOWTYPE ShowType);//更新帧
void LoadImageCellMode(CDirectDraw *pCDD,char* FileName,int x,int y,int CellWidth,int CellHeight,int frame);//读图象,基于单元格子的,行优先
void Show(CDirectDraw* pCDD,int x,int y, RECT *pRect, bool IsColorKeyed);
void Release();
CActiveDS(int frame_num,int play_delay,int curr_frame);//动态分配指针
LPDIRECTDRAWSURFACE7 *lpDS;
int m_nDSWidth;
int m_nDSHeight;
int m_nMaxFrame;
int m_nCurrentFrame;
int m_nPlayDelay;
int m_nPlayCount;
CActiveDS();
virtual ~CActiveDS();
};
上面是我实验是时候写的,感觉不是很通用,高手指点下。
tile 的读取我感觉真的很麻烦,尤其是比较复杂的tile资源的模板。那么该有什么好的方法把资源载入surface呢?有的模板是“乱七八糟”的,该怎么办?
各位帮帮忙,我实在想不出好的办法了。。。有接口代码最好,谢谢! [em24] |
|