//这算团队写的?
思路
因为之前接触过一个游戏引擎,所以这次游戏的实现方法是模仿那个引擎的做的。
//主函数的代码
这是选完实现英雄以后开始战斗的代码,选英雄的代码,组长还在实行中。
死循环前有两个函数分别是,导入读取,和初始化地图。
int main() { hwnd=initgraph(1728, 768);//创建窗口 hdc= GetDC(hwnd);//获得窗口hdc LOADING();//读取图片 ALL_ini();//初始化游戏 while (1)//死循环 { GetLocalTime(&now);//开始执行代码的时间 //游戏此处执行 ALL_draw();//绘制窗口 ALL_play();//游戏运行 Sleep(10);//休息一段时间 // GetLocalTime(&last); //执行完代码的时间 dr_time=find_time(last, now); } closegraph();//关闭窗口 return 0; }
主函数的死循环主要包含三个部分,控制死循环多少秒执行一次的Sleep()函数,这个功能还没写好,因为不知道游戏写完运行一次这个死循环需要多久,所以帧率也还没定好。
其余两个部分是游戏的核心绘制窗口和游戏运行,绘制窗口函数会绘制窗口所有物体/*废话*/
游戏运行部分就比较复杂了,/*这里先不说*/
类
精灵类:
这是最简单的一个类,也是唯一一个非封闭类,是后面所以封闭类的成员对象
精灵这个概念来自于游戏引擎,(虽然不知道为啥叫这个名字),其实就是多张图片的集合;
其中pic[]这个CImage的数组装了这个游戏大部分图片,精灵类记录了这个精灵对象的图片是这个大数组的第几张到第几张。
class sprite { public: sprite(int num, int be )//精灵图片的数量 开始的位置 { pic_num = num; begin = be; } sprite() { } ~sprite() { } int pic_num;//图片数量 int begin; void show(int x, int y, int index,HDC hdc, CImage pic[])//index 0 开始 { pic[index+begin].Draw(hdc, x, y); } };
英雄类
即玩家控制的对象。代码还没写完。
建筑类(固体类)
这个游戏里唯一的固体?包括防御塔,水晶,和泉水。代码还没写完。
小兵类
写小兵类的人本来想和英雄合并,当时偷懒把小兵AI简化成弱智了,所以小兵最后单独出一个类来了。
伤害类
就是所有子弹啊,技能这些东西的,这个类一言难尽,游戏策划,写了12个技能,估计会是代码量最常的类了吧。还没开始让人写
随笔地址: