C语言游戏开发之打飞机(普通)

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
int high,width;
int position_x,position_y;
int bullet_x,bullet_y;
int enemy_x,enemy_y;
int score;
void startup()
{
 high=30;
 width=40;
 position_x=high/2;
 position_y=width/2;
 bullet_x=-1;
 bullet_y=position_y;
 enemy_x=0;
 enemy_y=position_y;
 score=0;
}
void gotoxy(int x,int 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 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==enemy_x && j==enemy_y) printf("@");
  else if (i==bullet_x && j==bullet_y) printf("|");
  else printf(" ");
  printf("\n");
 }
 printf("得分:%d\n",score);
}
void updatewithoutinput()
{
 if (bullet_x==enemy_x && bullet_y==enemy_y)
 {
  score++;
  enemy_x=-1;
  enemy_y=rand()%width;
  bullet_x=-2;
 }
 if (enemy_x>high)
 {
  enemy_x=-1;
  enemy_y=rand()%width;
 }
 if (bullet_x>-1) 
  bullet_x--;
 static int speed=0;
 if (speed<10) speed++;
 if (speed==10)
 {
  enemy_x++;
  speed=0;
 }
}
void updatewithinput()
{
 char c;
 if (kbhit())
 {
  c=getch();
  if (c=='a' || c=='A')
  position_y--;
  if (c=='d' || c=='D')
  position_y++;
  if (c=='w' || c=='W')
  position_x--;
  if (c=='s' || c=='S')
  position_x++;
  if (c==' ')
  {
   bullet_x=position_x-1;
   bullet_y=position_y;
  }
 }
}
int main()
{
 startup();
 HideCursor();
 while(1)
 {
  show();
  updatewithoutinput();
  updatewithinput();
 }
 return 0;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值