只要代码写得好,程序员每天都是情人节
用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,直接双击开始打开,来到安装引导界面。可选择安装路径。
接下来一路next,可以勾选Create a desktop shortcut。代表创建桌面快捷方式
接下来点击install,最后点击finish。
接下来可以欣赏浪漫烟花爆炸的样子