700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 最简单的飞机大战小游戏(C语言实现)

最简单的飞机大战小游戏(C语言实现)

时间:2019-03-28 12:53:44

相关推荐

最简单的飞机大战小游戏(C语言实现)

思路分析

所谓飞机射击类的游戏,就是关于两个对象之间的行动而产生的一系列联系,对于我们的飞机而言,要实现移动和射击这最简单的两种行为,而我们的敌人——靶子只需要出现并在识别到飞机的射击行为后消失就好,我们目前只设计静态靶子。

1.飞机的移动通过用户的输入来实现,作为cs发烧友,"W" "S" "A" "D"这四个键已经刻入了我们的DNA之中,所以在用户每次输入这几个字母时,我们的飞机要在相应的方向上进行位移(通过对x,y的加减操作实现,加减数字的大小来实现模拟速度)。为避免输入一个字符就要按一下"Enter"键的麻烦,我们在此引入#include<conio.h>头文件,用_getch()函数实现输入。最后在每次循环开始进行清屏操作,避免满屏都是“飞机”的痕迹。

2.x,y两个变量实时的改变都会反映飞机的位置,我们首先将靶子"+"随机固定在某个位置,让飞机进行射击,即每行输出 "|" ,当飞机的y值+2==靶子的值时,改变我们的标记值(因为飞机的形状,y值对应并不是飞机的中线),此时靶子消失。

#include<stdio.h>#include<stdlib.h>#include<conio.h>int main() {int i, j;int x = 10;int y = 5;char input;int ny = 5;int isFired = 0;int isKilled = 0;while (1) {system("cls");if (isKilled == 0) {for (i = 0; i < ny; i++)printf(" ");printf("+\n");}if (isFired == 0) {for (i = 0; i < x; i++)printf("\n");}else {for (i = 0; i < x; i++) {for (j = 0; j < y; j++)printf(" ");printf(" |\n");}if (y + 2 == ny)isKilled = 1;isFired = 0; }for (i = 0; i < x; i++)printf("\n");for (j = 0; j < y; j++)printf(" ");printf(" *\n");for (j = 0; j < y; j++)printf(" ");printf("*****\n");for (j = 0; j < y; j++)printf(" ");printf(" * *\n");//scanf("%c", &input);input = _getch();if (input == 's')x++;if (input == 'w')x--;if (input == 'a')y--;if (input == 'd')y++;if (input == ' ')isFired = 1;}return 0;}

效果演示

由于我们的输入是单个字符型,所以移动和攻击动作会有明显的延时,感兴趣的朋友可以了解一下EasyX图形库。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。