#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<time.h>//全局变量
int position_x,position_y;              //飞机位置
int bullet_x,bullet_y;                  //子弹位置
int enemy_x,enemy_y;                    //敌机位置
int high,width;                         //游戏画面尺寸
int score;                              //得分
int speed = 0;                          void gotoxy(int x, int y)                  //将光标移动到(x,y)位置
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);      //获取光标句柄 COORD pos;pos.X = x;pos.Y = y;                //定义光标位置 SetConsoleCursorPosition(handle, pos);          //移动光标
}void HideCursor()
{CONSOLE_CURSOR_INFO cursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
void startup()                          //数据初始化
{high = 20;width = 30;position_x = high/2;position_y = width/2;bullet_x = -2;bullet_y = position_y;enemy_x = 0;enemy_y = position_y;score = 0;} void show()                             //显示画面{gotoxy(0,0);                         //重画清屏 int i,j;for(i=0;i<high;i++){for(j=0;j<width;j++){if((i==position_x)&&(j==position_y))printf("*");                 else if((i==position_x+1)&&(j>=position_y-2)&&(j<=position_y+2))printf("*");else if((i==position_x+2)&&(j==position_y-1))printf("*");else if((i==position_x+2)&&(j==position_y+1))printf("*");else if((i==enemy_x)&&(j==enemy_y))printf("@");                //输出敌机else if((i==bullet_x)&&(j==bullet_y))printf("|");                //输出子弹elseprintf(" ");                //输出空格 }printf("\n");}printf("得分:%d\n",score);} void updateWithoutInput()              //与用户输入无关的更新{if(bullet_x>-1)                      //子弹向上移动 bullet_x--;if((bullet_x==enemy_x)&&(bullet_y==enemy_y)){speed = 0;score++;                         //分数加一enemy_x = -1;                    //产生新飞机enemy_y = rand()%width;bullet_x = -2;                   //子弹消失 }if(enemy_x>high)                   //敌机跑出显示屏幕 {printf("游戏失败!\n");system("pause");}//通过静态局部变量或者全局变量达到每几次循环敌机才会移动一次//从而降低敌机移动速度改变游戏难度static int k = 100;                             //根据分数控制难度 if(score==10)k = 30;else if(score==20)k = 20;else if(score==30)k = 10;if(speed<k)speed++;if(speed==k){enemy_x++;                        //敌机下移 speed = 0;                          } } void updateWithInput()                 //与用户有关的更新{char input;if(kbhit())                        //判断是否有输入{input = getch();                  //根据用户输入不同来移动且无需回车if(input=='a'&&position_y>0)position_y--;                     //左移if(input=='d'&&position_y<width-1)position_y++;                     //右移if(input=='w'&&position_x>0)position_x--;                     //上移if(input=='s'&&position_x<high-3)position_x++;                     //下移if(input==' ')                    //发射子弹{bullet_x = position_x-1;bullet_y = position_y;} } } int main(){   HideCursor();                      //隐藏光标 srand(time(0));                    //随机数种子 startup();                         //数据初始化while(1)                      //游戏循环执行{show();                        //显示画面updateWithoutInput();          //与用户无关更新updateWithInput();             //与用户有关更新 } return 0;}

飞机大战(wsad上下左右,空格发射子弹,击中敌机加一分,分数达到10,20,30难度增加,敌机飞出显示屏幕游戏失败)相关推荐

  1. Unity游戏开发官方入门教程:飞机大战(六)——创建子弹

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  2. Python“飞机大战”上下左右移动空格发射子弹

    下载点此去 最后面有运行视频 一.项目背景 作为一名学习计算机的学生,在以往,我认为学习计算机要么就是无所不能的黑客,要么就是能制作出各种软件程序的大神.我选择pygame板块,制作一款能随意更改游戏 ...

  3. 从零开始 飞机大战(五)实现子弹定位和动画

    实现目标 首先判断什么时候需要发射炮弹,我们设置在摁下空格的时候发射炮弹,我们下载键盘监控事件中 所以在键盘检测到我们摁下空格的时候,一个炮弹就自动加载到舞台中, //键盘的监控事件 document ...

  4. 坦克大战_我方坦克发射子弹

    Members package com.wxh.tank3;//坦克类,父类 class Tank {// 表示坦克的横坐标int x = 0;// 坦克的纵坐标int y = 0;// 坦克方向// ...

  5. 程序设计 C语言飞机大战

    作业要求: 1.游戏当中出现多类型敌人 2.游戏中能进行存档和读档 3.玩家控制的飞机由多字符组成 4.游戏过程中没有出现BUG  5.游戏显示制作者信息 6.游戏当中带有BGM 7.其他个性化设定 ...

  6. Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  7. Unity游戏开发官方入门教程:飞机大战(五)——实现飞船控制脚本

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  8. Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  9. 自动发射子弹c语言,C语言代码实现飞机大战

    本文实例为大家分享了C语言实现简单飞机大战的具体代码,供大家参考,具体内容如下 这个游戏的功能很单一,也就是"飞机大战",哈哈哈哈.总共只有300多行代码左右,你也可以想想它会有多 ...

最新文章

  1. DL之Keras:keras保存网络结构、网络拓扑图、网络模型(json、yaml、h5等)注意事项及代码实现
  2. cmd命令将web项目打成jar包_2020全网首发!JDK14之jpackage命令尝鲜
  3. iMac 是什么?苹果2021新款 iMac 购买建议
  4. IEEE Signal Processing Letters
  5. python怎么安装xlutils_Python3安装xlutils
  6. JavaScript内置对象之Array对象总结(附实例)
  7. iOS AirPlay 投屏调研
  8. alt复制选区就会卡 ps_运行PS卡死了,学会这些Photoshop设置让PS摆脱卡顿
  9. 适合游戏视频剪辑CPU排行榜,cpu天梯图
  10. Windows常见键盘操作快捷键
  11. 彼得林奇投资策略精髓
  12. FMI飞马网 | 人工智能/大数据/程序/语言/项目管理/机器学习/Python书籍免费赠书
  13. 前端技术之SVG图片(图标)创建
  14. 公有云 私有云及架构
  15. 通信协议之IIC协议(eeprom)_通俗易懂篇!
  16. Ubuntu8.04最全问题汇总
  17. 软件构造 Lab4 Lab5 实验日记
  18. ps磁性套索工具如何抠图
  19. 数学名词:调和平均数
  20. 顿号、分号;这些标点符号的用法

热门文章

  1. Linux程序之触摸,linux触摸屏touch screen调用测试程序
  2. oracle中decode函数的使用
  3. Py-pandas: list/dict转dataframe, 合并,索引,保留有效值
  4. 我一个二本大学是如何拿到百度、网易大厂offer的!【原文】
  5. win10+网络位置+服务器,怎么样在win10电脑中设置网络位置
  6. 上学与不上学的区别(奇文共赏)-转
  7. 明朝是中国历史上最有骨气的王朝
  8. 梅科尔工作室-王佩茜-鸿蒙笔记3
  9. 苹果ios 11系统无法连接服务器,ios11 App Store无法连接解决办法,亲测可用
  10. HTML5 游戏开发实战 | 黑白棋