浪漫烟花html,【2021跨年】最浪漫的烟花程序,送给新的一年的自己!(源码)...
祝愿大家,在新的一年里面也要更加好哦!
以下就是我们的新年烟花程序源码了!大家一起来学习吧~
源码分享:
#include
#include
#include
#include
#include//自己安装了才有
#include
#pragma comment(lib,"winmm.lib")//多媒体设备接口库文件
#define PI 3.1415
#define NUM 13//烟花弹数量
#define WIDTH 960
#define HEIGHT 640
/*
开发环境:vs2019+easyx
*/
struct Fire
{
int x, y;
int cen_x, cen_y;//中心点坐标
int r;//当前绽放半径
int max_r;//最大绽放半径
int width, height;
DWORD pixel[240][240];//图片像素数组
bool isShow;//烟花是否准备好了
bool isDraw;//是否绘制烟花
}fire[NUM];
struct Jet //烟花弹
{
int x, y;//坐标
int hx, hy;//最高点的坐标
bool isLaunch;//烟花弹是否在发射中
IMAGE img[2];
byte n : 1;//位段 0 1 0 1 0 1 0 1 0 1
}jet[NUM];
void welcome()
{
mciSendString(L"open ./res/小幸运.mp3", 0, 0, 0);
mciSendString(L"play ./res/小幸运.mp3", 0, 0, 0);
for (int i = 0; i
{
//清除屏幕
cleardevice();
int x = 500 + 180 * sin(2 * PI / 60 * i);
int y = 200 + 180 * cos(2 * PI / 60 * i);
//设置字体样式
settextstyle(i, 0, L"楷体");
settextcolor(RGB(0, 202, 0));
setbkmode(TRANSPARENT);
outtextxy(x, y, L"浪漫表白程序");
Sleep(20);
}
_getch();//按任意键继续
cleardevice();
settextstyle(25, 0, L"楷体");
outtextxy(350, 100, L"亲爱的XXX");
outtextxy(350, 150, L"自从第一天看见你");
outtextxy(350, 200, L"我的心就不能自已");
outtextxy(350, 250, L"不管天上地下都想看见你");
outtextxy(350, 300, L"...");
outtextxy(350, 350, L"...");
outtextxy(450, 400, L"--最喜欢你的我");
}
void InitData(int i);
void loadImg()
{
//初始化绽放效果
IMAGE bloomImg,tImg;
loadimage(&bloomImg, L"./res/flower.jpg", 3120, 240);
for (int i = 0; i
{
InitData(i);
SetWorkingImage(&bloomImg);
getimage(&tImg, i * 240, 0, 240, 240);
SetWorkingImage(&tImg);
for (int a = 0; a
{
for (int b = 0; b
{
fire[i].pixel[a][b] = getpixel(a, b);
}
}
}
//初始化烟花弹
IMAGE jetImg;
loadimage(&jetImg, L"./res/launch.jpg", 200, 50);
SetWorkingImage(&jetImg);
for (int i = 0; i
{
int n = rand() % 5;
getimage(&jet[i].img[0], n*20, 0, 20, 50);
getimage(&jet[i].img[1], n*20 + 100, 0, 20, 50);
jet[i].isLaunch = false;
}
SetWorkingImage();
}
void InitData(int i)
{
fire[i].cen_x = 120;
fire[i].cen_y = 120;
fire[i].max_r = 120;
fire[i].r = 0;
fire[i].width = 240;
fire[i].height = 240;
fire[i].isDraw = false;
fire[i].isShow = false;
}
//产生烟花弹
void createJet()
{
int i = rand() % NUM;//[0~13)
if (jet[i].isLaunch == false)
{
jet[i].x = rand() % (WIDTH-20);
jet[i].y = rand() % 100 + HEIGHT;
jet[i].hx = jet[i].x;
jet[i].hy = rand() % (HEIGHT / 3 * 2);
jet[i].isLaunch = true;
}
}
//发射烟花弹
void launch()
{
for (int i = 0; i
{
if (jet[i].isLaunch)
{
putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n],SRCINVERT);
//判断是否达到最高点了
if (jet[i].y > jet[i].hy)
{
jet[i].y -= 5;
jet[i].n++;
}
putimage(jet[i].x, jet[i].y, &jet[i].img[jet[i].n], SRCINVERT);
if (jet[i].y
{
jet[i].isLaunch = false;
//可以开始放烟花了
fire[i].x = jet[i].x;
fire[i].y = jet[i].y;
fire[i].isShow = true;
}
}
}
}
void bloom(DWORD *pMem)
{
for (int i = 0; i
{
if (fire[i].isShow)
{
if (fire[i].r
{
fire[i].r++;
fire[i].isDraw = true;//可以开始绘制烟花了
}
if (fire[i].r >= fire[i].max_r)
{
InitData(i);
}
}
if (fire[i].isDraw)
{
//求当前半径下,圆上的每个点对于的弧度
for (double a = 0; a
{
int img_x = fire[i].cen_x + fire[i].r * cos(a);//求出圆上的每个点的坐标
int img_y = fire[i].cen_y + fire[i].r * sin(a);
if (img_x > 0 && img_x0 && img_y
{
//针对现在的绽放点,对应的屏幕坐标
int win_x= fire[i].x + fire[i].r * cos(a);
int win_y = fire[i].y + fire[i].r * sin(a);
if (win_x > 0 && win_x0 && win_y
{
pMem[win_y * WIDTH + win_x] = BGR(fire[i].pixel[img_x][img_y]);
}
}
}
}
}
}
int main()
{
//创建窗口
initgraph(960, 640);
//设置随机数种子
srand((unsigned)time(NULL)+clock());
welcome();
loadImg();
DWORD* pMem = GetImageBuffer();//获取窗口的内存指针
while (1)
{
for (int i = 0; i
{
for (int k = 0; k
{
int x = rand() % WIDTH;
int y = rand() % HEIGHT;
if (y
{
pMem[y * WIDTH + x] = BLACK;
}
}
}
createJet();
launch();
bloom(pMem);
Sleep(10);
}
closegraph();
return 0;
}
以上就是今日的全部分享,happy new year
浪漫烟花html,【2021跨年】最浪漫的烟花程序,送给新的一年的自己!(源码)...相关推荐
- WoShop跨境电商国际支付Paypal支付商城全开源无加密商城源码
WoShop跨境电商国际支付Paypal支付商城全开源无加密商城源码 现在的企业都喜欢直接用源码进行开发,特别是在跨境电商版块这一行,很多企业都是直接购买跨境电商系统源码再进行一个二次开发,从而给自己 ...
- HTML+Jquery实现2022跨年烟花特效,除夕最炫烟花代码,跨年怎能没有烟花
- 2021年度28个开箱即用的MQTT开源项目合集【附源码】
随着云通讯行业持续增长,5G建设逐步推进.音视频技术快速迭代,都是为了满足人与人.设备与人.设备与设备之间的消息传输.这无疑是一个消息传输的时代.在这个时代中,所有的协议.配置都在于恰到好处.正如MQ ...
- 2021年前端小白进阶大神必看编程资源免费分享(视频+源码+笔记)
关注了我的同学都知道,我给大家分享资源,一般最先开始给大家的是 小白成长的学习线路图,先缕清思路,我们再开始学习 首先我们先看下前端应该从哪里开始学起,这是我在黑马程序员的论坛上找的一张学习线路图,可 ...
- 2023年2.14情人节最浪漫的表白烟花,送给自己的脑婆(源码)
先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶段: 1,发射阶段:在这一阶段烟花的形状是线性向上,通过设定一组大小不同.颜色不同的点来模拟"向上发射" ...
- server如何调用 thrift_一文带你了解 Thrift,一个可伸缩的跨语言 RPC 框架(pinpoint 源码分析系列)...
Thrift 是什么研究分布式调用链工具pinpoint的时候,在源码里看到了Thrift相关的代码,所以来了兴趣,想研究研究这个框架.Thrift 目前是 Apache 的一个项目,但是它是由fac ...
- BitXHub 跨链插件(Fabric)源码解读
前言 趣链科技的BitXHub跨链平台是业界较为完善的跨链开源解决方案,主要通过中继链.网关和插件机制对跨链流程中的功能.安全性和灵活性等进行了优化.本文对BitXHub的meshplus/pier- ...
- 2023跨年烟花(浪漫烟花+美妙音乐+雪花飘飘)含前端源码直接下载---系列最终篇
2023年快要到来啦,很高兴这次我们又能一起度过~ 特辑最终篇!!! 视觉中国 目录 一.前言 二.跨年烟花 三.效果展示 四.详细介绍 五.编码实现 index.html js 六.获取代码 需要 ...
- 谁能拒绝浪漫的2023元旦跨年代码?
2023年元旦节就要来啦,最近出门逛街,发现街上的元旦氛围也越来越浓,大街小巷都放着喜庆的音乐,各种吃的玩的也加上了元旦元素~马上就要跨年了,每年这时候都是收集元旦限定的日子,谁不想被创意满满,元旦氛 ...
最新文章
- 85. Maximal Rectangel
- 2021 年最值得了解的 Node.js 工具(下)
- 升级遗留代码的最佳实践
- django2.x/3.x 前端页面在debug模式中找不到动态文件static
- 有史以来最伟大的软件开发书籍(国外篇)
- python Flask配置笔记
- Mysql(二)Mysql SQL练习题
- linux 找不到libaio.h,Linux上的POSIX AIO和libaio之间的区别?
- 【渝粤教育】国家开放大学2018年春季 0034-21T现代管理原理 参考试题
- 竞赛|全球物联网数据创新大赛
- 使用MindSpore进行一阶导数计算
- UI设计师必备素材|功能性UI线性图标
- CANopen协议及应用
- 数据结构版学生管理系统
- urlrewriter 的用法
- 为什么说单页面程序SEO不友好?
- 工程流体力学笔记暂记7(动量方程)
- CADD之分子对接一:背景介绍
- 毕业设计-基于SSM的药店管理系统
- vasp测试计算机,求助:无法判断vasp测试是否完成
热门文章
- 存储引擎:MyIsam概述
- 2020-web前端-自己的比较JavaScript-基础
- .NET(C#)中不同级别的安全透明代码对类型的影响
- [英文缩写]英文聊天中rofl,nth,idk,imho是什么意思?
- dhu复试基础——76 字符串排序
- 小学计算机课教学工作总结,小学信息技术教学工作总结三篇
- 网络安全工程师面试题tcp/ip篇
- 华为m6升级鸿蒙系统,华为正式发布鸿蒙手机操作系统:可升级机型一览 5年老机型都有份...
- java删除文件夹下所有的内容
- iperf3使用方法简介