C/C++编程笔记:浪漫流星雨表白程序,七夕想表白,我教你啊!

明天就七夕节了,各位学习编程的小可爱们,有什么美好的计划了吗?约好了自己心仪的姑娘吗?什么!不要告我说明天你准备宅家看动漫!

别慌,我知道,在座的各位肯定都是有自己的心仪的姑娘,那么今天就教大家一招,做一个表白程序去进行表白,别等了,赶紧打开你的VS2013,跟着代码敲起来,不然的话,喜欢的人都跟别人跑了!

直接源码分享:

#include
#include	//图形库:easyX201905
#include
#include

#define MAXSTAR 1314
#define MAXMETEOR 520

//结构体
//几个星星:1000
struct Star
{
	int x, y;
	int color;
	int step;
}star[MAXSTAR];
//流星结构
struct Meteor
{
	int x, y;
	int style;
	int step;
}meteor[MAXMETEOR];

IMAGE img1, img2;//1.定义图片变量

void printText()
{
	//设置文字颜色
	settextcolor(RGB(255, 0, 255));//三原色:红,绿,蓝
	//调整字体大小
	settextstyle(50, 0, "华文行楷");
	//你的文采:发到公屏上
	/*
		海底月是天上月,眼前人是心上人
		春分十里,我喜欢你
		终是庄周圆了梦
		这是我的手背,这是我的脚背,你是我的宝贝。
		一粥一饭/不及你/颦颦一笑
		问君能有几多愁?家人未入眼帘人消瘦
		我喜欢你,像风走了八万里,不问归期
		白酒清欢无别事,我在等风也在等你
		就承认一笑倾城一见自难忘
		问君能有几多愁?佳人未入眼帘人消瘦
		ABCDEFGHIJKLMNOPQRSTVWXYZ
	*/

	//在指定位置输出字符串
	outtextxy(450, 20, "七夕到了,炮姐我喜欢你");

	//设置文字颜色
	settextcolor(RGB(0, 255, 255));//三原色:红,绿,蓝
	//调整字体大小
	settextstyle(40, 0, "华文行楷");

	outtextxy(200, 100, "终是庄周圆了梦");
	outtextxy(200, 150, "春分十里,我喜欢你");
	outtextxy(200, 200, "一粥一饭不及你颦颦一笑");
	outtextxy(200, 250, "就承认一笑倾城一见自难忘");
	outtextxy(200, 300, "海底月是天上月,眼前人是心上人");
	outtextxy(200, 350, "白酒清欢无别事,我在等风也在等你");
	outtextxy(200, 400, "ABCDEFGHIJKLMNOPQRSTVWXYZ");
	outtextxy(200, 450, "	我喜欢你,像风走了八万里,不问归期");
	outtextxy(200, 500, "问君能有几多愁?佳人未入眼帘人消瘦");
	outtextxy(200, 550, "这是我的手背,这是我的脚背,你是我的宝贝。");
	outtextxy(300, 600, "----------------------------------爱你的艺辰");

	_getch();//按键
}

//放大招:流星雨
//初始化星星
void initStar(int i)
{
	//随机产生坐标,颜色,速度
	star[i].x = rand() % 1200;
	star[i].y = rand() % 800;
	star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);
	star[i].step = rand() % 10;
}
//画星星
void drawStar(int i)
{
	//画像素点:在初始化星星的坐标
	putpixel(star[i].x, star[i].y, star[i].color);
	//移动星星:给它速度
	star[i].x += star[i].step;
	//跑到窗口外面的星星:初始化
	if (star[i].x >= 1200)
	{
		putpixel(star[i].x, star[i].y, star[i].color);
		initStar(i);
	}
}

//流星
//初始化流星
void initMeteor(int i)
{
	meteor[i].x = rand()%2200-1000;//[-1200,1199]
	meteor[i].y = rand()%20-200;
	meteor[i].style = rand() % 2;	//0,1
	meteor[i].step = rand() % 30 + 1;//+3 :流星的速度不为0
}
//画流星:贴图技术
void drawMeteor(int i)
{
	//3.贴图:显示图片
	for (i = 0; i < MAXMETEOR; i++)
	{
		switch (meteor[i].style)
		{
		case 0:
			putimage(meteor[i].x, meteor[i].y, &img1,SRCPAINT);
			break;
		case 1:
			putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);
			break;
		}
	}
}
//移动流星
void moveMeteor(int i)
{
	for (i = 0; i < MAXMETEOR; i++)
	{
		meteor[i].x += meteor[i].step;
		meteor[i].y += meteor[i].step;
		if (meteor[i].x >= 1200 || meteor[i].y >= 800)
		{
			initMeteor(i);
		}
	}
}
int main()
{
	//2.加载图片
	loadimage(&img1, "1.jpg", 50, 50);
	loadimage(&img2, "2.jpg", 50, 50);
	//界面:初始化图形环境宽度,高度
	initgraph(1200, 800);
	//随机函数种子:如果不播种:随机出来的是伪随机
	srand((unsigned int)time(NULL));
	printText();

	int i = 0;
	for ( i = 0; i < MAXSTAR; i++)
	{
		initStar(i);
	}
	for (i = 0; i < MAXMETEOR; i++)
	{
		initMeteor(i);
	}
	drawMeteor(i);

	while (1)
	{
		BeginBatchDraw();
		cleardevice();
		for (i = 0; i < MAXSTAR; i++)
		{
			drawStar(i);
		}
		drawMeteor(i);
		moveMeteor(i);
		Sleep(100);
		EndBatchDraw();
	}
	

	while (1);	//卡屏 _getch()函数
	closegraph();//关闭图形环境
	return 0;
}

代码都给你们了,还在等什么呢?GOGOGO!

自学C/C++编程难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!

C语言C++编程学习交流圈子,【点击进入】微信公众号:C语言编程学习基地

有一些源码和资料分享,欢迎转行也学习编程的伙伴,和大家一起交流成长会比自己琢磨更快哦!

你可能感兴趣的:(C语言,表白程序,浪漫表白,流星雨,程序员,C语言)