前言
本文实例为大家分享了C语言实现打飞机小游戏的具体代码,供大家参考,具体内容如下
编译环境:vs2019
需求:
在同一个平面内,控制大炮发射的三个方向,空格发射炮弹,敌军和友军飞机会一直随机在天上飞过,击中天上飞行的敌军飞机加一分,击中友军飞机减一分
思路:
先初始化程序,再画出说明和地图,接着进入无限循环,循环中分别实现飞机不停地在天上飞、通过wasd空格键控制游戏内容、符合游戏条件时加分三个主要步骤。
做法:
首先要实现飞机的动画效果,本质是要在控制台上输出三条x轴上输出一个字符串,并要让这三个字符串看起来在同时移动。
这里我借助了写赌马大赛的经验:在第一次无限循环内分别循环输出第1、2、3条的字符串表示走出第一步,然后再自增三个字符串x轴坐标数值,第二次无限循环清除上一次字符串移动痕迹,并再分别输出三条字符串,表示走出第二步。
由于内层for循环没有休眠函数,这样看起来就是三个字符串同时移动的效果。这样就可以通过无限循环表示三架飞机不停地移动了。
接下来是通过getch函数改变大炮炮口指向方向(一个字符),在炮口指向切换的同时,炮弹初始化的位置也同样会改变,当按下空格时,炮弹(一个字符)会从他的初始化位置沿设定好的路线不停移动,当横纵轴坐标与飞机坐标相匹配时判断是否为敌军飞机|—0>,是则得分加一,否则得分减一。
此外程序里还有很多细节,这里不一一赘述。
难点:
看起来让三个字符串同时移动。这是一种算法,学会了就应该应该像记住基础知识一样牢牢记住他。明白了原理之后,比较容易掌握。
注意:
由于编译器原因程序中_kbhit()和_getch()函数可能在其他编译器上编译会出现错误,解决办法是去掉函数前面的 “_”。
【源码获取】:
源码在C语言/C++交流②群:967051845!资料共享在群文件里面,有需要的可以自行添加~
此代码并不够高效,如果对代码有任何建议,都可以添加小编的学习交流群,欢迎大家来讨论~