首页 > 分享 > 元旦表白神器!C语言实现浪漫烟花表白(有背景音乐+示例源码)

元旦表白神器!C语言实现浪漫烟花表白(有背景音乐+示例源码)

vs2017环境下成功编译,vc6.0编译不通过 #include "stdafx.h" #include #include #include #include// 使用该计时器必须包含的文件 #pragma comment ( lib, "Winmm.lib" ) using namespace std; #define LONG800// 窗口长 #define WIDE500// 窗口宽 #define NUM13// 烟花种类数量宏定义 void Init_Fire();// 初始化烟花 void Load_Image();// 加载烟花图片 void Shoot();// 发射烟花 void Chose(DWORD& t1);// 筛选烟花 void Show(DWORD* pMem);// 绽放烟花 void Erase(DWORD* pMem);// 随机擦除像素点 // 烟花结构 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]; // 烟花弹结构 struct JET {int x, y;// 喷射点坐标int hx, hy;// 最高点坐标------将赋值给 FIRE 里面的 x, yint height;// 烟花高度bool shoot;// 是否可以发射DWORD t1, t2, dt;// 发射速度IMAGE img[2];// 储存花弹一亮一暗图片byte n : 1;// 图片下标 }Jet[NUM]; // 初始化烟花参数 void Init_Fire() {// 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离 (x、y) 两个分量int r[13] = { 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 };int x[13] = { 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 };int y[13] = { 120, 120, 85, 118, 120, 103, 105, 110, 110, 120, 120, 104, 85 };for (int i = 0; i < NUM; i++)// 初始化烟花{Fire[i].x = 0;// 烟花中心坐标Fire[i].y = 0;Fire[i].width = 240;// 图片宽Fire[i].height = 240;// 图片高Fire[i].max_r = r[i];// 最大半径Fire[i].cen_x = x[i];// 中心距左上角距离Fire[i].cen_y = y[i];Fire[i].show = false;// 是否绽放Fire[i].dt = 5;// 绽放时间间隔Fire[i].t1 = timeGetTime();Fire[i].r = 0;// 从 0 开始绽放Jet[i].x = -240;// 烟花弹左上角坐标Jet[i].y = -240;Jet[i].hx = -240;// 烟花弹发射最高点坐标Jet[i].hy = -240;Jet[i].height = 0;// 发射高度Jet[i].t1 = timeGetTime();Jet[i].dt = rand() % 10;// 发射速度时间间隔Jet[i].n = 0;// 烟花弹闪烁图片下标Jet[i].shoot = false;// 是否发射} } // 加载图片 void Load_Image() {IMAGE fm, gm;loadimage(&fm, _T("fire/flower.jpg"), 3120, 240);for (int i = 0; i < NUM; i++){SetWorkingImage(&fm);getimage(&gm, i * 240, 0, 240, 240);SetWorkingImage(&gm);for (int a = 0; a < 240; a++)for (int b = 0; b < 240; b++)Fire[i].xy[a][b] = getpixel(a, b);}IMAGE sm;loadimage(&sm, _T("fire/shoot.jpg"), 200, 50);for (int i = 0; i 100){int n = rand() % 20;if (n < 13 && Jet[n].shoot == false && Fire[n].show == false){Jet[n].x = rand() % LONG;Jet[n].y = rand() % 100 + LONG / 2;Jet[n].hx = Jet[n].x;Jet[n].hy = rand() % LONG / 3;Jet[n].height = Jet[n].y - Jet[n].hy;Jet[n].shoot = true;putimage(Jet[n].x, Jet[n].y, &Jet[n].img[Jet[n].n], SRCINVERT);}t1 = t2;} } // 扫描烟花弹并发射 void Shoot() {for (int i = 0; i Jet[i].dt&& Jet[i].shoot == true){putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);// 烟花弹的上升if (Jet[i].y > Jet[i].hy){Jet[i].n++;Jet[i].y -= 5;}putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);if ((Jet[i].y - Jet[i].hy) * 4 < Jet[i].height)// 上升到高度的 3 / 4,减速Jet[i].dt = rand() % 4 + 10;if (Jet[i].y <= Jet[i].hy)// 上升到最大高度{putimage(Jet[i].x, Jet[i].y, &Jet[i].img[Jet[i].n], SRCINVERT);// 擦掉烟花弹Fire[i].x = Jet[i].hx + 10;// 在烟花弹中间爆炸Fire[i].y = Jet[i].hy;// 在最高点绽放Fire[i].show = true;// 开始绽放Jet[i].shoot = false;// 停止发射}Jet[i].t1 = Jet[i].t2;}} } // 绽放烟花 void Show(DWORD* pMem) {// 烟花个阶段绽放时间间隔,制作变速绽放效果int drt[16] = { 5, 5, 5, 5, 5, 6, 25, 25, 25, 25, 55, 55, 55, 55, 55 };for (int i = 0; i Fire[i].dt&& Fire[i].show == true){if (Fire[i].r = Fire[i].max_r - 1){Fire[i].draw = false;Init_Fire();}Fire[i].t1 = Fire[i].t2;}// 如果该号炮花可爆炸,根据当前爆炸半径画烟花,颜色值接近黑色的不输出。if (Fire[i].draw){for (double a = 0; a <= 6.28; a += 0.01){int x1 = (int)(Fire[i].cen_x + Fire[i].r * cos(a));// 相对于图片左上角的坐标int y1 = (int)(Fire[i].cen_y -

相关知识

JAVA表白浪漫烟花效果代码
C语言情人节浪漫烟花表白代码
HTML浪漫动态表白代码绚烂星空烟花+粉色大爱心+3D大小魔方旋转相册+音乐(附源码)(三)
html+css+javaScript实现炫酷烟花表白(云雾状粒子文字3D开场)七夕情人节表白/520表白源码HTML
最炫表白网站html5源码—html唯美表白网页源码
倒计时烟花表白页源码求婚网页520表白女神恋爱告白情人节表白七夕情侣表白网站源码
情人节表白代码:浪漫玫瑰花,俘获少女心
一行代码教你撩妹手到擒来❤html+css+js烟花告白3D相册(含音乐+可自定义文字)520表白/七夕情人节/求婚...
c语言表白程序源码玫瑰花,小伙子用C语言写出绽放的玫瑰花,成功表白C++代码女神!...
《520七夕情人节表白礼物》❤520表白星空漫漫3D相册❤(HTML+CSS+JavaScript)

网址: 元旦表白神器!C语言实现浪漫烟花表白(有背景音乐+示例源码) https://m.huajiangbk.com/newsview958653.html

所属分类:花卉
上一篇: c#超火表白程序(详细版)
下一篇: 浪漫流星雨表白神器——来自程序员