最新520表白程序(C++).doc
《最新520表白程序(C++).doc》由会员分享,可在线阅读,更多相关《最新520表白程序(C++).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料520表白程序(C+).菜鸟奉献你一个520表白神器爱情总是那么神圣,烂漫,每个人都会有无限的向往,即便是程序员(自我笑下),忽然我想起周星驰的那些话“曾经有一段爱情摆在我面前。我希望是一万年”,于是我试着做了表白程序。实现原理:原理比较的简单,主要是运用windows API来实现,程序初步实现的功能是显示文字,图像,歌曲(重复),燃放烟花(循环),程序的实现过程大概可以描述为烟花燃放的一个过程(初始化,上升,爆炸,循环),具体实现方法不再复述了,代码比较简单。工具:VS2013 Eaxy(冬至版)使用TC库,不是VC库,用Eaxy主要代码:#include graphics.h#i
2、nclude #include #include #include #include #pragma comment ( lib, Winmm.lib )/* 宏定义区 */#define NUM13/ 烟花种类数量宏定义/* 结构定义区 */ 烟花结构struct FIREint r;/ 当前爆炸半径int max_r;/ 爆炸中心距离边缘最大半径int x, y;/ 爆炸中心在窗口的坐标int cen_x, cen_y;/ 爆炸中心相对图片左上角的坐标int width, height;/ 图片的宽高int xy240240;/ 储存图片像素点bool show;/ 是否绽放bool dr
3、aw;/ 开始输出像素点DWORD t1, t2, dt;/ 绽放速度FireNUM;/ 烟花弹结构struct JETint x, y;/ 喷射点坐标int hx, hy;/ 最高点坐标-将赋值给 FIRE 里面的 x, yint height;/ 烟花高度bool shoot;/ 是否可以发射DWORD t1, t2, dt;/ 发射速度IMAGE img2;/ 储存花弹一亮一暗图片byte n : 1;/ 图片下标JetNUM;/* 函数申明区 */void Init(int);/ 初始化烟花void Load();/ 加载烟花图片void Shoot();/ 发射烟花void Chos
4、e(DWORD&);/ 筛选烟花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(50, 0, 楷体);setcolor(YELLOW);outtextxy(480, 100, My Dear
5、);outtextxy(400, 200, 愿你悲伤有人分担!);outtextxy(400, 280, 愿你孤独有人陪伴!);getchar();cleardevice();settextstyle(25, 0, 楷体);outtextxy(400, 250, 曾经);outtextxy(400, 300, 有一份真挚的爱情摆在我的面前);outtextxy(400, 350, 我没有珍惜);outtextxy(400, 400, 直到失去了才后悔莫及);outtextxy(400, 450, 世间最痛苦的事情莫过于此);outtextxy(400, 500, 如果上天能给我一个在来一次的机
6、会);outtextxy(400, 550, 我会对那个女孩说);outtextxy(400, 600, 我爱你,一万年);outtextxy(700, 660, 谢新明);getchar();DWORD t1 = timeGetTime();/ 筛选烟花计时DWORD st1 = timeGetTime();/ 播放花样计时DWORD* pMem = GetImageBuffer();/ 获取窗口显存指针for (int i = 0; i NUM; i+)/ 初始化烟花Init(i);Load();/ 将烟花图片信息加载进相应结构中BeginBatchDraw();/ 开始批量绘图while
7、 (!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)/ 防止越界 pMempy1 * 1200 + px1 = pMempy1 * 1200 + px1 + 1 = BLACK; / 对显存赋值擦出像素点Chose(t1);/ 筛选烟花Shoot();/ 发射烟花Show(pMem);/ 绽放烟花Style(st1);/ 花样发射FlushB
8、atchDraw();/ 显示前面的所有绘图操作/ 初始化烟花参数void Init(int i)/ 分别为:烟花中心到图片边缘的最远距离、烟花中心到图片左上角的距离 (x、y) 两个分量int r13 = 120, 120, 155, 123, 130, 147, 138, 138, 130, 135, 140, 132, 155 ;int x13 = 120, 120, 110, 117, 110, 93, 102, 102, 110, 105, 100, 108, 110 ;int y13 = 120, 120, 85, 118, 120, 103, 105, 110, 110, 120
9、, 120, 104, 85 ;/* 初始化烟花 */Firei.x = 0;/ 烟花中心坐标Firei.y = 0;Firei.width = 240;/ 图片宽Firei.height = 240;/ 图片高Firei.max_r = ri;/ 最大半径Firei.cen_x = xi;/ 中心距左上角距离Firei.cen_y = yi;Firei.show = false;/ 是否绽放Firei.dt = 5;/ 绽放时间间隔Firei.t1 = timeGetTime();Firei.r = 0;/ 从 0 开始绽放/* 初始化烟花弹 */Jeti.x = -240;/ 烟花弹左上角
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 520 表白 程序
限制150内