飞机大战(wsad上下左右,空格发射子弹,击中敌机加一分,分数达到10,20,30难度增加,敌机飞出显示屏幕游戏失败)
#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难度增加,敌机飞出显示屏幕游戏失败)相关推荐
- Unity游戏开发官方入门教程:飞机大战(六)——创建子弹
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- Python“飞机大战”上下左右移动空格发射子弹
下载点此去 最后面有运行视频 一.项目背景 作为一名学习计算机的学生,在以往,我认为学习计算机要么就是无所不能的黑客,要么就是能制作出各种软件程序的大神.我选择pygame板块,制作一款能随意更改游戏 ...
- 从零开始 飞机大战(五)实现子弹定位和动画
实现目标 首先判断什么时候需要发射炮弹,我们设置在摁下空格的时候发射炮弹,我们下载键盘监控事件中 所以在键盘检测到我们摁下空格的时候,一个炮弹就自动加载到舞台中, //键盘的监控事件 document ...
- 坦克大战_我方坦克发射子弹
Members package com.wxh.tank3;//坦克类,父类 class Tank {// 表示坦克的横坐标int x = 0;// 坦克的纵坐标int y = 0;// 坦克方向// ...
- 程序设计 C语言飞机大战
作业要求: 1.游戏当中出现多类型敌人 2.游戏中能进行存档和读档 3.玩家控制的飞机由多字符组成 4.游戏过程中没有出现BUG 5.游戏显示制作者信息 6.游戏当中带有BGM 7.其他个性化设定 ...
- Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- Unity游戏开发官方入门教程:飞机大战(五)——实现飞船控制脚本
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- 自动发射子弹c语言,C语言代码实现飞机大战
本文实例为大家分享了C语言实现简单飞机大战的具体代码,供大家参考,具体内容如下 这个游戏的功能很单一,也就是"飞机大战",哈哈哈哈.总共只有300多行代码左右,你也可以想想它会有多 ...
最新文章
- DL之Keras:keras保存网络结构、网络拓扑图、网络模型(json、yaml、h5等)注意事项及代码实现
- cmd命令将web项目打成jar包_2020全网首发!JDK14之jpackage命令尝鲜
- iMac 是什么?苹果2021新款 iMac 购买建议
- IEEE Signal Processing Letters
- python怎么安装xlutils_Python3安装xlutils
- JavaScript内置对象之Array对象总结(附实例)
- iOS AirPlay 投屏调研
- alt复制选区就会卡 ps_运行PS卡死了,学会这些Photoshop设置让PS摆脱卡顿
- 适合游戏视频剪辑CPU排行榜,cpu天梯图
- Windows常见键盘操作快捷键
- 彼得林奇投资策略精髓
- FMI飞马网 | 人工智能/大数据/程序/语言/项目管理/机器学习/Python书籍免费赠书
- 前端技术之SVG图片(图标)创建
- 公有云 私有云及架构
- 通信协议之IIC协议(eeprom)_通俗易懂篇!
- Ubuntu8.04最全问题汇总
- 软件构造 Lab4 Lab5 实验日记
- ps磁性套索工具如何抠图
- 数学名词:调和平均数
- 顿号、分号;这些标点符号的用法
热门文章
- Linux程序之触摸,linux触摸屏touch screen调用测试程序
- oracle中decode函数的使用
- Py-pandas: list/dict转dataframe, 合并,索引,保留有效值
- 我一个二本大学是如何拿到百度、网易大厂offer的!【原文】
- win10+网络位置+服务器,怎么样在win10电脑中设置网络位置
- 上学与不上学的区别(奇文共赏)-转
- 明朝是中国历史上最有骨气的王朝
- 梅科尔工作室-王佩茜-鸿蒙笔记3
- 苹果ios 11系统无法连接服务器,ios11 App Store无法连接解决办法,亲测可用
- HTML5 游戏开发实战 | 黑白棋