250行代码基于C + EasyX实现感人的表白小程序,画出美丽的爱心雨!

这个小程序是在 18年的夏天写的,曾经有一份真挚的爱情摆在我面前,我没有好好珍惜,算了,还是赶紧 new一个新对象吧 ~

程序中的爱心是我用 api画出来的,也是比较麻烦的一种方法,如果使用图片的话会快很多,话不多来,现在看看效果是怎么样的 . . .

刚开始的效果是下面这样的:
在这里插入图片描述
如果点否的话会一直循环下面这种类型的字:
在这里插入图片描述
点是的话,会慢慢形成下面的界面:
在这里插入图片描述
完整的效果如下所示:

爱心表白小程序


代码如下所示:

//愿所有有情人终成眷属

#include <graphics.h>
#include <time.h>
#include <mmsystem.h>//播放音乐的头文件
#pragma comment(lib,"winmm.lib")//播放音乐的库文件

#define LOVE_NUM 30

char sz_1[][24] = { "我一直以为山是水的故事",
"云是风的故事",
"你是我的故事",
"可是却不知道",
"我是不是你的故事" };

char sz_2[][32] = { "如果可以和你在一起",
"我宁愿让天空所有的星光全部损落",
"因为你的眼睛",
"是我生命里最亮的光芒" };

typedef struct LOVE
{
	int x;
	int y;
}love;

love sz_love[LOVE_NUM];
POINT ILoveYou[LOVE_NUM][26];

void Init(); //初始化   音乐 背景颜色
void DrawHouse();//画出房子
void DrawHouse1();//更新房子
void InitLove();//初始化爱心
void DrawLove(); //画出爱心雨
void SayToYou(); //要说的话
void SayToYou1();//更新要说的话
void BoxMessage();//消息盒子

int main()
{
	ShowWindow(FindWindow("ConsoleWindowClass", 0), 0);		//隐藏黑窗口

	BoxMessage(); //消息盒子

	Init();		     //初始化
	InitLove();
	DrawHouse();	//画出房子
	SayToYou();     //要说的话

	BeginBatchDraw();
	while (1)
	{
		cleardevice();	//刷新屏幕
		DrawHouse1();
		SayToYou1();
		DrawLove();		//画出爱心
		Sleep(5);

		FlushBatchDraw();
	}

}

//初始化   音乐 背景颜色
void Init()
{
	srand((unsigned)time(0));
	initgraph(840, 680);
	//播放背景音乐
	mciSendString("open 1.mp3 alias cong", 0, 0, 0);
	mciSendString("play cong repeat", 0, 0, 0);
	setbkcolor(RGB(255, 174, 201));
	cleardevice();
}

//画出房子
void DrawHouse()
{
	Sleep(520);
	setfillcolor(RGB(185, 122, 87));
	setlinecolor(RGB(50, 50, 50));
	fillrectangle(100, 350, 300, 550);
	POINT a[] = { { 130, 280 }, { 270, 280 }, { 350, 350 }, { 50, 350 } };
	Sleep(520);
	setfillcolor(LIGHTGRAY);

	fillpolygon(a, 4);
	setfillcolor(LIGHTGRAY);
	Sleep(520);
	fillrectangle(220, 470, 270, 550);
	setlinestyle(PS_DASHDOTDOT, 2, NULL, NULL);
	Sleep(520);
	line(220, 550, 245, 528);
	setlinestyle(PS_SOLID, 3, NULL, NULL);
	Sleep(520);
	line(100, 450, 200, 450);
	POINT b[] = { { 153, 401 }, { 157, 397 }, { 164, 392 }, { 171, 391 }, { 178, 393 }, { 184, 398 }, { 186, 403 }, { 187, 408 }, { 186, 414 }, { 183, 420 }, { 179, 426 }, { 172, 433 }, { 164, 439 }, { 158, 442 }, { 153, 445 },
	{ 143, 439 }, { 134, 433 }, { 127, 426 }, { 123, 421 }, { 120, 414 }, { 118, 408 }, { 120, 402 }, { 122, 397 }, { 126, 393 }, { 135, 390 }, { 145, 393 } };
	setfillcolor(RGB(255, 174, 201));
	Sleep(520);
	solidpolygon(b, 26);
	Sleep(1314);
}

//用来更新
void DrawHouse1()
{
	setfillcolor(RGB(185, 122, 87));
	setlinecolor(RGB(50, 50, 50));
	fillrectangle(100, 350, 300, 550);
	POINT a[] = { { 130, 280 }, { 270, 280 }, { 350, 350 }, { 50, 350 } };
	setfillcolor(LIGHTGRAY);
	fillpolygon(a, 4);
	setfillcolor(LIGHTGRAY);
	fillrectangle(220, 470, 270, 550);
	setlinestyle(PS_DASHDOTDOT, 2, NULL, NULL);
	line(220, 550, 245, 528);
	setlinestyle(PS_SOLID, 3, NULL, NULL);
	line(100, 450, 200, 450);
	POINT b[] = { { 153, 401 }, { 157, 397 }, { 164, 392 }, { 171, 391 }, { 178, 393 }, { 184, 398 }, { 186, 403 }, { 187, 408 }, { 186, 414 }, { 183, 420 }, { 179, 426 }, { 172, 433 }, { 164, 439 }, { 158, 442 }, { 153, 445 },
	{ 143, 439 }, { 134, 433 }, { 127, 426 }, { 123, 421 }, { 120, 414 }, { 118, 408 }, { 120, 402 }, { 122, 397 }, { 126, 393 }, { 135, 390 }, { 145, 393 } };
	setfillcolor(RGB(255, 174, 201));
	solidpolygon(b, 26);
}

//画出爱心雨
void DrawLove()
{
	for (int i = 0; i < LOVE_NUM; i++)
	{
		sz_love[i].y += 2;
		if (sz_love[i].y > 700)
		{
			sz_love[i].x = rand() % 840;
			sz_love[i].y = -20;

		}
		ILoveYou[i][0] = { sz_love[i].x, sz_love[i].y - 13 };
		ILoveYou[i][1] = { sz_love[i].x + 4, sz_love[i].y - 17 };
		ILoveYou[i][2] = { sz_love[i].x + 11, sz_love[i].y - 22 };
		ILoveYou[i][3] = { sz_love[i].x + 18, sz_love[i].y - 23 };
		ILoveYou[i][4] = { sz_love[i].x + 25, sz_love[i].y - 21 };
		ILoveYou[i][5] = { sz_love[i].x + 31, sz_love[i].y - 16 };
		ILoveYou[i][6] = { sz_love[i].x + 33, sz_love[i].y - 11 };
		ILoveYou[i][7] = { sz_love[i].x + 34, sz_love[i].y - 6 };
		ILoveYou[i][8] = { sz_love[i].x + 33, sz_love[i].y };
		ILoveYou[i][9] = { sz_love[i].x + 30, sz_love[i].y + 6 };
		ILoveYou[i][10] = { sz_love[i].x + 26, sz_love[i].y + 12 };
		ILoveYou[i][11] = { sz_love[i].x + 19, sz_love[i].y + 19 };
		ILoveYou[i][12] = { sz_love[i].x + 11, sz_love[i].y + 25 };
		ILoveYou[i][13] = { sz_love[i].x + 5, sz_love[i].y + 28 };
		ILoveYou[i][14] = { sz_love[i].x, sz_love[i].y + 31 };
		ILoveYou[i][15] = { sz_love[i].x - 5, sz_love[i].y + 28 };
		ILoveYou[i][16] = { sz_love[i].x - 11, sz_love[i].y + 25 };
		ILoveYou[i][17] = { sz_love[i].x - 19, sz_love[i].y + 19 };
		ILoveYou[i][18] = { sz_love[i].x - 26, sz_love[i].y + 12 };
		ILoveYou[i][19] = { sz_love[i].x - 30, sz_love[i].y + 6 };
		ILoveYou[i][20] = { sz_love[i].x - 33, sz_love[i].y };
		ILoveYou[i][21] = { sz_love[i].x - 34, sz_love[i].y - 6 };
		ILoveYou[i][22] = { sz_love[i].x - 33, sz_love[i].y - 11 };
		ILoveYou[i][23] = { sz_love[i].x - 31, sz_love[i].y - 16 };
		ILoveYou[i][24] = { sz_love[i].x - 25, sz_love[i].y - 21 };
		ILoveYou[i][25] = { sz_love[i].x - 18, sz_love[i].y - 23 };
	}
	setfillcolor(RED);
	for (int i = 0; i < LOVE_NUM; i++)
	{
		solidpolygon(ILoveYou[i], 26);
	}

}

//初始化爱心
void InitLove()
{
	for (int i = 0; i < LOVE_NUM; i++)
	{
		sz_love[i].x = rand() % 840;
		sz_love[i].y = rand() % 680;

		ILoveYou[i][0] = { sz_love[i].x, sz_love[i].y - 13 };
		ILoveYou[i][1] = { sz_love[i].x + 4, sz_love[i].y - 17 };
		ILoveYou[i][2] = { sz_love[i].x + 11, sz_love[i].y - 22 };
		ILoveYou[i][3] = { sz_love[i].x + 18, sz_love[i].y - 23 };
		ILoveYou[i][4] = { sz_love[i].x + 25, sz_love[i].y - 21 };
		ILoveYou[i][5] = { sz_love[i].x + 31, sz_love[i].y - 16 };
		ILoveYou[i][6] = { sz_love[i].x + 33, sz_love[i].y - 11 };
		ILoveYou[i][7] = { sz_love[i].x + 34, sz_love[i].y - 6 };
		ILoveYou[i][8] = { sz_love[i].x + 33, sz_love[i].y };
		ILoveYou[i][9] = { sz_love[i].x + 30, sz_love[i].y + 6 };
		ILoveYou[i][10] = { sz_love[i].x + 26, sz_love[i].y + 12 };
		ILoveYou[i][11] = { sz_love[i].x + 19, sz_love[i].y + 19 };
		ILoveYou[i][12] = { sz_love[i].x + 11, sz_love[i].y + 25 };
		ILoveYou[i][13] = { sz_love[i].x + 5, sz_love[i].y + 28 };
		ILoveYou[i][14] = { sz_love[i].x, sz_love[i].y + 31 };
		ILoveYou[i][15] = { sz_love[i].x - 5, sz_love[i].y + 28 };
		ILoveYou[i][16] = { sz_love[i].x - 11, sz_love[i].y + 25 };
		ILoveYou[i][17] = { sz_love[i].x - 19, sz_love[i].y + 19 };
		ILoveYou[i][18] = { sz_love[i].x - 26, sz_love[i].y + 12 };
		ILoveYou[i][19] = { sz_love[i].x - 30, sz_love[i].y + 6 };
		ILoveYou[i][20] = { sz_love[i].x - 33, sz_love[i].y };
		ILoveYou[i][21] = { sz_love[i].x - 34, sz_love[i].y - 6 };
		ILoveYou[i][22] = { sz_love[i].x - 33, sz_love[i].y - 11 };
		ILoveYou[i][23] = { sz_love[i].x - 31, sz_love[i].y - 16 };
		ILoveYou[i][24] = { sz_love[i].x - 25, sz_love[i].y - 21 };
		ILoveYou[i][25] = { sz_love[i].x - 18, sz_love[i].y - 23 };
	}
}

//要说的话
void SayToYou()
{
	int x = 450, y = 100;

	settextstyle(20, 10, "楷体");
	settextcolor(RGB(255, 100, 0));
	for (int i = 0; i < 5; i++)
	{
		outtextxy(x, y, sz_1[i]);
		y += 25;
		Sleep(1314);
	}

	y += 20;
	for (int i = 0; i < 4; i++)
	{
		outtextxy(x, y, sz_2[i]);
		y += 25;
		Sleep(1314);
	}
	Sleep(1314);	//1314个毫秒后,下起爱心雨
}

//更新要说的话
void SayToYou1()
{
	int x = 450, y = 100;
	for (int i = 0; i < 5; i++)
	{
		outtextxy(x, y, sz_1[i]);
		y += 25;
	}

	y += 25;
	for (int i = 0; i < 4; i++)
	{
		outtextxy(x, y, sz_2[i]);
		y += 25;
	}
}

//消息盒子
void BoxMessage()
{
	while (MessageBox(NULL, "小姐姐我喜欢你", "愿意做我女朋友吗", MB_YESNO) != IDYES)
	{
		if (MessageBox(NULL, "为你做饭吃呀", "愿意做我女朋友吗", MB_YESNO) == IDYES) break;
		if (MessageBox(NULL, "为你洗衣服呀", "愿意做我女朋友吗", MB_YESNO) == IDYES) break;
		if (MessageBox(NULL, "钱归你管呀", "愿意做我女朋友吗", MB_YESNO) == IDYES) break;
		if (MessageBox(NULL, "你最大呀", "愿意做我女朋友吗", MB_YESNO) == IDYES) break;
	}

	if (MessageBox(NULL, "为亲爱的你,献上一首歌,想听吗", "我最喜欢你了 ^_^ 嘻嘻", MB_YESNO) != IDYES)
	{
		exit(0);
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42100963/article/details/107447837