先上图
一个游戏引擎应该包括舞台()类,还有精灵类(),然后从上面派生出来英雄,敌人,子弹,值得一提的是map(地图)也是从精灵类中派生出来的;
CGame()类就是舞台类,由于精灵类并不需要自己的方法
只需要拥有自己的属性:所以为了节省开支,我用STRUCT()来代替CLASS()
typedef struct{
int character;//角色:0;敌人:1;子弹:2;地图:3;
int hp; //精灵的生命值
int x0,y0; //精灵当前的坐标
int m0,m1; //图片起始点m0,和图片终结点m1;
int x1,y1; //爆炸坐标
int m11,m12; //爆炸的起始m11,终结点m12;为敌人而设的
int w,h; //WIDTH HEITGH;
int p; //图片的指针;
int p1; //爆炸指针
int Z; //Z轴,0为地图层,1为精灵层,时间充足可以往上面添加云层;
}Sprite;
为了以后的扩展:我还另外写了一个结构体,指向图片序列:方便以后添加更多的敌人
typedef struct{
int Beg; //起始图片
int Num; //图片数量
}list;
这次需要被加载的图片全部都在当前目录的pictures文件夹下
从这里可以看到图片不多,所以我并没有采用压缩技术把他们封装起来成一个包,单以后图片多了的话,最好还是用压缩….
我的大概思路:
主角是:英雄(TROOPER)
敌人是:敌人(CONDOR)
敌人会从高空处降落下来对主角进行攻击,一旦与主角发生碰撞就会产生爆炸,并且主角的生命值会减1;主角可以上下左右移动,并且可以发射子弹来阻止敌人的靠近,每干掉一个敌人就会得到加分
由于这还只是个demo(关卡设计这里只有一关,而已英雄的HP降到0都不会死,)都是为了调试的方便,所以我们现在的英雄是无敌的,哈哈哈啊哈,不用开挂就无敌了- -
今天挤出一点点时间把这个博文写完,接下来的慢慢再继续- -GG大家不要急