C++ flappybird(基于easyx)

C++ flappybird(基于easyx),第1张

C++ flappybird(基于easyx)

#include
#include
#include
#include

#pragma comment(lib,"Winmm.lib")

//障碍物移动,所以鸟看起来移动
struct bar {
	
	int x;	int y;
	int speed;
};
struct bar bar1 = { 200,-500,4 };
struct bar bar2 = { 400,300,4 };

class preGraph {
public:
	preGraph(int w, int h)
	{
		initgraph(w, h);
	}
	~preGraph()
	{
		closegraph();
	}
};
IMAGE img_bk;
IMAGE img_bird_mask;
IMAGE img_bird;
IMAGE img_bar_down;
IMAGE img_bar_down_mask;
int width;
int height;
IMAGE img_bar_up;
IMAGE img_bar_up_mask;
int birdx, birdy;
int birdWidth, birdHeight;
int barHeight;
int time;
int speed;
int jump;

void lose() {
	EndBatchDraw();
//	Sleep(500);
	cleardevice();
	char str[] = "Game over!";
	outtextxy(width/2 - 10, height/2, str);
	_getch();
	closegraph();
}

void start()
{
	time = 0;
	mciSendString("open .\flappy bird图片音乐素材\background.mp3 alias bkmusic", NULL, 0, NULL);//设置背景音乐
	mciSendString("play bkmusic repeat", NULL, 0, NULL);

	loadimage(&img_bk, ".\flappy bird图片音乐素材\background.jpg");
	width = img_bk.getwidth();
	height = img_bk.getheight();
	loadimage(&img_bird_mask, ".\flappy bird图片音乐素材\bird1.jpg");
	loadimage(&img_bird, ".\flappy bird图片音乐素材\bird2.jpg");
	loadimage(&img_bar_up_mask, ".\flappy bird图片音乐素材\bar_up1.gif");
	loadimage(&img_bar_up, ".\flappy bird图片音乐素材\bar_up2.gif");
	loadimage(&img_bar_down_mask, ".\flappy bird图片音乐素材\bar_down1.gif");
	loadimage(&img_bar_down, ".\flappy bird图片音乐素材\bar_down2.gif");
	barHeight = img_bar_up.getheight();
	birdx = 50;
	birdy = 200;
	birdHeight = img_bird.getheight();
	birdWidth = img_bird.getwidth();
	speed = 6;
	jump = 30;
}
void show()
{
	putimage(0, 0, &img_bk, SRCCOPY);

	putimage(bar1.x, bar1.y, &img_bar_up_mask, NOTSRCERASE);
	putimage(bar1.x, bar1.y, &img_bar_up, SRCINVERT);

	putimage(bar2.x, bar2.y, &img_bar_down_mask, NOTSRCERASE);
	putimage(bar2.x, bar2.y, &img_bar_down, SRCINVERT);

	putimage(birdx, birdy, &img_bird_mask, NOTSRCERASE);
	putimage(birdx, birdy, &img_bird, SRCINVERT);
	Sleep(50);
}
void updateWithoutInput()
{

	if (bar1.x < -100) {//障碍物移动
		bar1.x = 400;
		bar1.y = -300 + (rand() % 200);
	}
	if (bar2.x < -100) {
		bar2.x = 400;
		bar2.y = -300 + (rand() % 200);
	}

	if (birdy < height - birdHeight)//下坠
		birdy += speed;
	if (birdy >= height - birdHeight)//下边界
		lose();
	if ((birdx + birdWidth >= bar1.x && birdx <= bar1.x + img_bar_down.getwidth()) && (birdy <= bar1.y + barHeight)) {
		lose();
	}
	if ((birdx + birdWidth >= bar2.x && birdx <= bar2.x + img_bar_down.getwidth()) && (birdy + birdHeight >= bar2.y)) {
		lose();
	}
	bar1.x -= bar1.speed;
	bar2.x -= bar2.speed;
}
void updateWithInput()
{
	char input;
	if (_kbhit())
	{
		input = _getch();
		if (input == ' ')
			birdy -= jump;
	}
}



int main()
{
	start();
	preGraph initgp(width, height);//初始化界面
	while (1)
	{
		show();
		updateWithoutInput();
		updateWithInput();
	}
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4749230.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-08
下一篇2022-11-08

发表评论

登录后才能评论

评论列表(0条)

    保存