最简单的飞机游戏
方向控制

通过getch()获取键盘输入
引入靶子和开火键,当空格控制开火,当开火击中靶子时,就通过随机数再生成一个新的靶子。
#include <iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std;
int main()
{
int i,j;
int x=5,y=10;//位置的初始值
char input;//键盘输入,控制方向
int isfire=0;//是否开火
int ny=5; //靶子放在第一行的第ny列
int iskilled=0;//是否命中
while(1){
system("cls");
if(iskilled==0){
for(j=0;j<ny;j++) cout<<" ";
cout<<"o"<<endl;
}else if(iskilled==1){
ny=rand()%10+2;//生成一个新的靶子
iskilled=0;//修改iskilled的值
}
if(isfire==0){
for(i=0;i<x;i++) cout<<endl;//输出空行
}
else{
for(i=0;i<x;i++){
for(j=0;j<y;j++){
cout<<" ";
}
cout<<" |\n"; //输出竖线
}
if(y+1==ny) iskilled=1; //
isfire=0;
}
for(j=0;j<y;j++) cout<<" ";
cout<<" *"<<endl;
for(j=0;j<y;j++) cout<<" ";
cout<<"***";
if(_kbhit()){ //有键盘输入时为1,否则为0
input=getch();//获取键盘输入的值
if(input=='a') y--;
if(input=='d') y++;
if(input=='w') x--;
if(input=='s') x++;
if(input==' ') isfire=1;//开火
}
}
return 0;
}

1514

被折叠的 条评论
为什么被折叠?



