#include#include#include#include#include#definedjnum3//敌机数目//全局变量inthigh=700,width=480;//游戏画面大小intfjx,fjy...
#include
#include
#include
#include
#include
#define djnum 3 //敌机数目
// 全局变量
int high=700,width=480; // 游戏画面大小
int fjx,fjy;//飞机坐标
int hm[20][50]={0};//二维数组记录画面中的元素,0为空格 1飞机 2子弹 3敌机 4buff
int zdx,zdy;//子弹坐标
int djx[djnum],djy[djnum];//敌机坐标
int defen=0;//得分
int zdwidth;//子弹宽度
int djspeed; //敌机速度
int bx,by;//buff坐标
int buff;
int kb;//击杀buff
IMAGE imgbk;//背景图片
IMAGE imgfj1,imgfj2;//正常飞机图片
void gotoxy(int x,int y)//类似于清屏函数
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(handle,pos);
}
void startup() // 数据初始化
{
initgraph(width,high);// 创建绘图窗口,大小为 480*700 像素
loadimage(&imgbk,"D:\\background.jpg");
loadimage(&imgfj1,"D:\\fj1.jpg");
loadimage(&imgfj2,"D:\\fj2.jpg");
fjx=width/2;//飞机位置
fjy=high/2;
}
void show() // 显示画面
{gotoxy(0,0);
putimage(0,0,&imgbk);//放置背景
putimage(fjx,fjy,&imgfj2,NOTSRCERASE);
putimage(fjx,fjy,&imgfj1,SRCINVERT);
}
void updateWithoutInput() // 与用户输入无关的更新
{ getch();
closegraph();
}
void updateWithInput() // 与用户输入有关的更新
{MOUSEMSG m;//记录鼠标消息
bool MouseHit();
while(MouseHit())//鼠标移动时飞机移动
{ m=GetMouseMsg();
if(m.uMsg == WM_MOUSEMOVE)
{fjx=m.x;
fjy=m.y;
}
}
}
int main()
{
startup(); // 数据初始化
while (1) // 游戏循环执行
{
show(); // 显示画面
updateWithoutInput(); // 与用户输入无关的更新
updateWithInput(); // 与用户输入有关的更新
}
return 0;
}
展开