最后
完成编写后,我们需要将模式改为release,但是有人会发现改为release后可能会产生debug模式没有的bug。这是因为release会优化代码。我们需要保证变量必须初始化,返回值非void函数必须有返回值。
编译成exe文件:菜单栏-&...
13.游戏的最后实现以及计时速度的控制我们在前面说过,若是想实现动画效果必须使用while(1)循环(以下简称为主循环)绘制整个画布。但是这样循环过快,会使得植物的摇摆动画和僵尸动画速度过快。如果我们使用在每次循环后使用Sleep()函数设置延时,那...
12.积分的比较和写入读取最高积分读取外部文件的内容,该文件保存了最高积分:
1234567891011int getScore() { int fileNumber = 0; FILE* file = fopen("score....
11.背景的绘制以及交互功能背景的绘制123456789101112131415161718192021222324252627282930void putMainBk() { char wstr[20]; //当前积分 char s...
10.内存释放和游戏状态的判断内存释放因为豌豆是链表,所以我们需要及时释放内存,避免过高内存占用
12345678910111213141516171819void deletePeaAfterNode(peas* head) {//删除已...
9.僵尸位置的改变和吃植物的判定位置检测首先检测僵尸的位置:
12345678910111213141516void changeZombie() { if (zb[zombielist->gx - 1][zombielist->...
8.豌豆绘制以及发射、撞击的判定豌豆发射的判定首先是豌豆发射的判定,这个的方法有很多,这里介绍我的方法。首先遍历场上所有植物,如果当前植物是豌豆射手且僵尸在当前行且僵尸位于豌豆射手前面则发射豌豆。
123456789void toShoot() ...
7.植物和僵尸图片的绘制及动画植物动画这里的关键点是动画的实现。
12345678910111213void drawPlant() { for (int i = 0; i < 16; i++) { if (zb[newp...
6.游戏前的准备以下是主函数代码
123456789101112131415int main() { initgraph(WIN_WEIDTH, WIN_HEIGHT); loadPicGroup(); logIn();//以上内容前面已经...