资源简介
本项目开发环境为win10_x64+VS2017,提供烟花特效的生日祝福语运行界面,同时含有背景音乐,可更改音乐和祝福人与被祝福人,提供源码改动
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include // 使用该计时器必须包含的文件
#pragma comment ( lib “Winmm.lib“ )
/***** 宏定义区 ******/
#define NUM 13 // 烟花种类数量宏定义
/***** 结构定义区 **********/
// 烟花结构
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 y
int height; // 烟花高度
bool shoot; // 是否可以发射
DWORD t1 t2 dt; // 发射速度
IMAGE img[2]; // 储存花弹一亮一暗图片
byte n : 1; // 图片下标
}Jet[NUM];
// happy birthday 艺术字结构
struct HAPPY // 储存 Happy Birthday 艺术字图片
{
int x y; // 每个字的图片的左上角坐标
IMAGE img; // 储存单个字图片
static int num; // 字母序号
}Happy[NUM];
int HAPPY::num = 0;
// 自定义文字 结构
struct WISH // 滚动祝福图片结构
{
int x y; // 图片左上角坐标
DWORD t1 t2 dt; // 图片运动时间间隔
IMAGE img; // 储存图片
int dxy; // 每次的移动量
byte dir : 1; // 限制两个滚动方向
}Wish;
/**** 函数申明区 ****/
void Init ( int ); // 初始化烟花
void Load ( ); // 加载烟花图片
void Shoot ( ); // 发射烟花
void Chose ( DWORD& ); // 筛选烟花
void Wishing( ); // 滚动祝福
void style ( DWORD& ); // 发射样式
void Show ( DWORD* ); // 绽放烟花
// 主函数
void main()
{
initgraph( 1200 800 );
srand( time(0) );
// 播放背景音乐
mciSendString( “open ./fire/bk.mp3 alias bk“ 0 0 0 );
mciSendString( “play bk repeat“ 0 0 0 );
setfillstyle( 0 );
settextstyle(36 0 “楷体“);
setcolor ( YELLOW );
outtextxy ( 370 100 “shaw寄来祝福 ^_^“ );
DWORD t1 = timeGetTime(); // 筛选烟花计时
DWORD st1 = timeGetTime(); // 播放花样计时
DWORD* pMem = GetImageBuffer(); // 获取窗口显存指针
for ( int i = 0; i < NUM; i++ ) // 初始化烟花
{
Init( i );
}
Load(); // 将烟花图片信息加载进相应结构中
BeginBatchDraw(); // 开始批量绘图
while ( !_kbhit() )
{
Sleep( 10 );
// 随机选择 4000 个像素点擦除
for ( int clr = 0; clr < 1000; 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 ); // 绽放烟花
Wishing ( ); // 滚动字符
style ( st1 ); // 花样发射
FlushBatchDraw( ); // 显示前面的所有绘图操作
}
}
// 初始化烟花参数
void Init( int i )
{
// 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离 (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 };
/**** 初始化烟花 *****/
Fire[i].x = 0; // 烟花中心坐标
Fire[i].y = 0;
Fire[i].width = 240;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-01-02 16:01 Test4\
目录 0 2019-01-02 15:37 Test4\.vs\
目录 0 2019-01-02 15:37 Test4\.vs\Test4\
目录 0 2019-01-02 15:57 Test4\.vs\Test4\v15\
文件 31232 2019-01-02 16:42 Test4\.vs\Test4\v15\.suo
文件 50561024 2019-01-02 16:42 Test4\.vs\Test4\v15\Browse.VC.db
目录 0 2019-01-02 15:39 Test4\.vs\Test4\v15\ipch\
目录 0 2019-01-02 15:57 Test4\.vs\Test4\v15\ipch\AutoPCH\
目录 0 2019-01-02 16:07 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\
目录 0 2019-01-02 15:39 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\DRAW-60b98f7c\
文件 3145728 2019-01-02 15:39 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\DRAW-60b98f7c\DRAW.ipch
目录 0 2019-01-02 16:09 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\MAIN-b91444b3\
文件 63242240 2019-01-02 16:09 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\MAIN-b91444b3\MAIN.ipch
目录 0 2019-01-02 16:07 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\RESOURCE-18ecbb3b\
文件 327680 2019-01-02 16:07 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\RESOURCE-18ecbb3b\RESOURCE.ipch
目录 0 2019-01-02 16:03 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\SYSTEMS-ce1e8186\
文件 41222144 2019-01-02 16:03 Test4\.vs\Test4\v15\ipch\AutoPCH\TEST4-12a39dcb\SYSTEMS-ce1e8186\SYSTEMS.ipch
目录 0 2019-01-02 16:03 Test4\.vs\Test4\v15\ipch\AutoPCH\_SFI_DF501322-DE69-4CB0-9D54-8483071BF5E8_-365a36a5\
目录 0 2019-01-02 16:03 Test4\.vs\Test4\v15\ipch\AutoPCH\_SFI_DF501322-DE69-4CB0-9D54-8483071BF5E8_-365a36a5\EASYX-36b30b0d\
文件 34275328 2019-01-02 16:03 Test4\.vs\Test4\v15\ipch\AutoPCH\_SFI_DF501322-DE69-4CB0-9D54-8483071BF5E8_-365a36a5\EASYX-36b30b0d\EASYX.ipch
目录 0 2019-01-02 15:57 Test4\.vs\Test4\v15\ipch\AutoPCH\_SFI_DF501322-DE69-4CB0-9D54-8483071BF5E8_-365a36a5\RESOURCE-1517036e\
文件 393216 2019-01-02 15:57 Test4\.vs\Test4\v15\ipch\AutoPCH\_SFI_DF501322-DE69-4CB0-9D54-8483071BF5E8_-365a36a5\RESOURCE-1517036e\RESOURCE.ipch
目录 0 2019-01-02 15:57 Test4\Debug\
目录 0 2019-01-02 15:58 Test4\Include\
文件 13007 2019-01-02 09:37 Test4\Include\easyx.h
文件 5247 2019-01-02 09:37 Test4\Include\graphics.h
目录 0 2019-01-02 15:58 Test4\lib2015\
目录 0 2019-01-02 15:58 Test4\lib2015\amd64\
文件 258044 2019-01-02 09:37 Test4\lib2015\amd64\easyx.lib
文件 260408 2019-01-02 09:37 Test4\lib2015\amd64\easyxw.lib
文件 181850 2019-01-02 09:37 Test4\lib2015\easyx.lib
............此处省略51个文件信息
- 上一篇:Unity 粒子特效
- 下一篇:JS AngularJS 学习笔记
相关资源
- G-code-Interpreter,G代码解释器
- rtmpdump vs2005版本
- Visual.Studio程序员箴言.pdf
- BeTwin VS 538完美支持Win7 官方原版32/6
- 虚拟串口VSPD的使用方法
- 三款主题VS2010
- VisualSVN7.1.2 Visual Studio 2019
- VS2010黑色主题Dark主题
- 代码片段编辑工具
-
unityVS .Net fr
amework3. 5安装 - Win10+VS2015版本的visual assist x破解!!!
- Visual Assist X VA_X插件及破解工具,适用
- Luaplus 53 Vs2015编译 通过 附使用说明
- log4cxx Windows vs已配置好的工程
- redhat vsftp
- vs2017community
- vs2015+wdk7.0搭建模板
- 四款vssettings配置文件
- VS皮肤 vssettings
- ShaderlabVSCode 1.1.6.unitypackage
- 人声空气感 VST插件32位/64位
- 声卡效果VST插件之明亮激励器
- K歌混响VST效果器机架插件NATIVE REVER
- avs+编解码算法
- TabControl用法图解VS2010
- 桌面图标贪吃蛇游戏
- Midas to FLAC3D-vs2010
- ffmpeg-4.0.2最新版 windows vs2013编译动态
- ImageWatch2019.vsix
- 浴池管理系统
评论
共有 条评论