#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
//函数全局变量
int position_x,position_y; //飞机位置
int bullet_x,bullet_y; //子弹位置
int high,width; //游戏换面尺寸
int enemy_x,enemy_y;
int score=0;
void HideCursor();
//W,A,D,S键可控制飞机移动
//定义隐藏光标函数
void HideCursor()
{
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible = FALSE;
cursor.dwSize = sizeof(cursor);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cursor);
}
//清屏幕函数
void gotoxy(int x, int y)
{
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
void startup() //数据初始化
{
high = 18;
width = 20;
position_x = high/2;
position_y = width/2;
bullet_x=-1;
bullet_y=position_y;
enemy_x=0;
enemy_y=width/2;
}
void show() //显示画面
{
int i,j;
gotoxy(0,0); //清屏
for(i=0;i<=high;i++)
{
for(j=0;j<=width;j++)
{
if((i==position_x)&&(j==position_y))
{
printf("*"); //输出星花
}
else if((i==bullet_x)&&(j==bullet_y))
{
printf("|");
}
else if((i==enemy_x)&&(j==enemy_y))
{
printf("@");
}
else if(j==width)
{
printf("|");
}
else if(i==high)
{
printf("_");
}
else
{
printf(" ");
}
}
printf("\n");
}
printf("得分score:%d",score);
}
void updatewithinput() //与用户输入有关的更新
{
char input ;
if(kbhit())
{
input = getch();
if(input=='a')
position_y--;
if(input=='d')
position_y++;
if(input=='w')
position_x--;
if(input=='s')
position_x++;
if(input==' ')
{
bullet_x=position_x-1;
bullet_y=position_y;
}
}
}
void updatewithoutinput() //与用户输入无关的更新
{
if((bullet_x==enemy_x)&&(bullet_y==enemy_y))
{
score++;
enemy_x=0;
enemy_y=rand() %width;
bullet_x=-1;
}
if(bullet_x>-1)
bullet_x--;
static int speed=0;
if(speed<50)
speed++;
if(enemy_x>high)
{
enemy_x=0;
enemy_y=rand() %width;
}
else
{
if(speed==50)
{
enemy_x++;
speed=0;
}
}
}
int main()
{
startup(); //数据初始化
while(1) //游戏循环执行
{
show(); //显示画面
updatewithoutinput(); //与用户输入无关的更新
updatewithinput(); //与用户输入有关的更新
}
return 0;
}
简单的飞机游戏——C语言课程设计与游戏开发中的源代
最新推荐文章于 2022-10-11 23:18:47 发布