zlh 发表于 2016-2-15 09:36:15

飞机大战小游戏编写教程(4)

今天就是我们飞机大战编写教程的第四章,也到了最后的一个步骤,飞机大战就可以完成了。
今天我们要判定游戏结束,敌机死亡和分数等数据的统计。
判定游戏结束和敌机死亡同样需要用到gotoxy()函数。只要敌机的坐标和子弹的坐标相同,就显示1,2,3然后在底线任意一点复活。
如果敌机的坐标和我机坐标相同,就进入byebye函数。
而向总得分,敌机数,歼敌数都已经分别在f,m,j等参数中保存过了。
命中率可以用((float)j/(float)m)*100这样算出。
下面上程序。
void byebye()
{
        if((x==d&&y==r)||(x==d1&&y==r1)||(x==d2&&y==r2))
        {
                gotoxy(1,3);
                printf(" !!! 游戏结束 !!!\n"
                "*******************\n"
                " 您的总得分: %d\n\n"
                " 敌机数: %d\n"
                " 歼敌数: %d\n"
                " 命中率: %.0f %%\n"
                "*******************\n",f,m,j,((float)j/(float)m)*100);
                while(!kbhit())
                {
                   Sleep(500);
                     gotoxy(1,12);
                     printf(" 继续请按任意键...\n\n\n");
                     Sleep(900);
                     gotoxy(1,12);
                     printf(" ");
                }
                gotoxy(0,0);
                huatu();
                f=0; m=0; j=0;
                if(x>=18) x--;
                else x++;
        }
}

另外我们再说一下kbhit()函数。这个函数的功能就是检测是否有键盘输入。
楼主就是利用这个函数解决了如果我机不动敌机就不动的问题。
详情请见上一篇文章的dfeiji()函数。
明天我就把整个原代码发上来。

zlh 发表于 2016-2-15 09:37:02

沙发945
@machimilk @小甲鱼的二师兄 @康小泡 @拈花小仙 @黑龍

黑龍 发表于 2016-2-15 10:15:17

zlh 发表于 2016-2-15 09:37
沙发945
@machimilk @小甲鱼的二师兄 @康小泡 @拈花小仙 @黑龍

发一下截图吧 就是游戏的截图{:9_228:}

zlh 发表于 2016-2-15 19:58:09

黑龍 发表于 2016-2-15 10:15
发一下截图吧 就是游戏的截图

明天发,界面也不是很炫

转身为墙 发表于 2016-2-29 09:42:17

支持!!!
页: [1]
查看完整版本: 飞机大战小游戏编写教程(4)