只要代码写得好,程序员每天都是情人节

用c语言编写动态烟花的方法:

首先绘制菜单界面显示文字;

然后设置烟花有上升阶段和爆炸阶段,

定义烟花和烟花弹结构体

最后初始化数据,

加载资源贴图,

随机发射数目随机。

C++实现的放烟花程序
用到easyx 图形库,没有的需要自行安装。实现的动态烟花非常好看,自己做出来玩玩也挺有意思的

 用到easyx 图形库 官网链接地址:EasyX 2022 版 (2022-1-16 更新) - EasyX

这里放一个浪漫炫酷烟花表白代码,先看看最终效果图: 

展示视频为先


爱情诗版本烟花爆炸视频V2.0(在开头写入表白)


可在函数中修改,这样会出现一段用来表白的话,可根据自己需求修改

等待音乐放到特定地方会绽放烟花,会出现爱心形状

1.烟花结构

// 烟花结构
struct FIRE
{
	int r;					// 当前爆炸半径
	int max_r;				// 爆炸中心距离边缘最大半径
	int x, y;				// 爆炸中心在窗口的坐标
	int cen_x, cen_y;		// 爆炸中心相对图片左上角的坐标
	int width, height;		// 图片的宽高
	int xy[240][240];		// 储存图片像素点

	bool show;				// 是否绽放
	bool draw;				// 开始输出像素点
	DWORD t1, t2, dt;		// 绽放速度
}Fire[NUM];

 2.烟花弹结构

// 烟花弹结构
struct JET
{
	int x, y;				// 喷射点坐标
	int hx, hy;				// 最高点坐标------将赋值给 FIRE 里面的 x, y
	int height;				// 烟花高度
	bool shoot;				// 是否可以发射

	DWORD t1, t2, dt;		// 发射速度
	IMAGE img[2];			// 储存花弹一亮一暗图片
	byte n : 1;				// 图片下标
}Jet[NUM];

 3.函数申明区

/**** 函数申明区 ****/
void saySomething();
void welcome();
void Init(int);		    // 初始化烟花
void Load();		    // 加载烟花图片
void Shoot();		    // 发射烟花
void Chose(DWORD&);		// 筛选烟花
void Style(DWORD&);		// 发射样式
void Show(DWORD*);		// 绽放烟花

4.主函数

void main()
{
	initgraph(1200, 800);
	
	//srand(time(NULL));//播撒随机数种子
	srand((unsigned)time(NULL)); //播撒随机数种子

	//mciSendString("open  告白气球-周杰伦.mp3", 0, 0, 0);  //  mci send string   媒体控制接口
	//mciSendString("play  告白气球-周杰伦.mp3", 0, 0, 0);

	//mciSendString("open  咱们结婚吧-齐晨.mp3", 0, 0, 0);  //  mci send string   媒体控制接口
	//mciSendString("play  咱们结婚吧-齐晨.mp3", 0, 0, 0);

	
	mciSendString("open  爱的翅膀-林依婷.mp3", 0, 0, 0);  //  mci send string   媒体控制接口
	mciSendString("play  爱的翅膀-林依婷.mp3", 0, 0, 0);

	saySomething();


	DWORD t1 = timeGetTime();			// 筛选烟花计时
	DWORD st1 = timeGetTime();			// 播放花样计时
	DWORD* pMem = GetImageBuffer();		// 获取窗口显存指针

	for (int i = 0; i < NUM; i++)		// 初始化烟花
	{
		Init(i);
	}
	Load();								// 将烟花图片信息加载进相应结构中
	BeginBatchDraw();					// 开始批量绘图

	while (!kbhit())
	{
		Sleep(10);

		// 随机选择 20000 个像素点擦除
		for (int clr = 0; clr < 10000; clr++)
		{
			for (int j = 0; j < 2; j++)
			{
				int px1 = rand() % 1200;
				int py1 = rand() % 800;

				if (py1 < 799)				// 防止越界
					pMem[py1 * 1200 + px1] = pMem[py1 * 1200 + px1 + 1] = BLACK;	// 对显存赋值擦出像素点
			}
		}
		Chose(t1);			// 筛选烟花
		Shoot();			// 发射烟花
		Show(pMem);			// 绽放烟花
		Style(st1);			// 花样发射
		FlushBatchDraw();	// 显示前面的所有绘图操作
	}


}

下面展示安装过程

下载成功后,可得到一个烟花爆炸安装程序.exe,直接双击开始打开,来到安装引导界面。可选择安装路径。

用java编写动态烟花代码 用c++编写动态烟花_用java编写动态烟花代码

接下来一路next,可以勾选Create a desktop shortcut。代表创建桌面快捷方式

用java编写动态烟花代码 用c++编写动态烟花_开发语言_02

接下来点击install,最后点击finish。

接下来可以欣赏浪漫烟花爆炸的样子

用java编写动态烟花代码 用c++编写动态烟花_c++_03

 

用java编写动态烟花代码 用c++编写动态烟花_开发语言_04