今天是520告白节,特意为大家准备了我去年用C语言表白成功的浪漫表白流星雨项目源码,把这个发给你喜欢的女生,你还害怕520找不到对象,要一个人过吗?

话不多说,直接上效果:

开发环境:Visual Studio 2019 + EasyX图形库插件即可

接下来我们看看源码:

#include<stdio.h>#include<math.h>#include<time.h>#include<conio.h>#include<graphics.h> //自己安装了才有#include<mmsystem.h>#pragma comment(lib,"winmm.lib")//多媒体设备接口库文件#define PI 3.1415#define NUM 13 //烟花弹数量#define WIDTH 960#define HEIGHT 640struct 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 < 50; 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"--爱你的XXX");}void InitData(int i);void loadImg(){//初始化绽放效果IMAGE bloomImg,tImg;loadimage(&bloomImg, L"./res/flower.jpg", 3120, 240);for (int i = 0; i < NUM; i++){InitData(i);SetWorkingImage(&bloomImg);getimage(&tImg, i * 240, 0, 240, 240);SetWorkingImage(&tImg);for (int a = 0; a < 240; a++){for (int  b = 0; b < 240; 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 < NUM; 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 < NUM; 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].hy){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 < NUM; i++){if (fire[i].isShow){if (fire[i].r < fire[i].max_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 <= 2 * PI; a += 0.01){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_x < fire[i].width && img_y>0 && img_y < fire[i].height){//针对现在的绽放点,对应的屏幕坐标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_x < WIDTH && win_y>0 && win_y < WIDTH){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 < WIDTH; i++){for (int k = 0; k < 4; k++){int x = rand() % WIDTH;int y = rand() % HEIGHT;if (y < HEIGHT){pMem[y * WIDTH + x] = BLACK;}}}createJet();launch();bloom(pMem);Sleep(10);}closegraph();return 0;}

以上就是我们表白程序的源码了!最后祝大家都能和喜欢的人在一起哦~

对于学习编程的小伙伴或者在工作想升职的程序员,如果你想更好的提升你的编程能力帮助你提升水平!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子,QQ群:765803539点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习视频分享:

【520表白】C语言开发《浪漫流星雨》表白程序,源码来了!相关推荐

  1. 微信小程序:二开版优化新紫色UI云开发新款壁纸小程序源码

    这是一款由旧版https://airymz.com/3387.html进行优化二开的一个新版本 本壁纸表情包头像小程序采用(dcloud云开发)所以无需服务器与域名 无需服务器.无需域名.云开发直接上 ...

  2. 二开版优化新紫色UI云开发新款壁纸小程序源码支持用户投稿在线审核

    本壁纸表情包头像小程序采用(dcloud云开发)所以无需服务器与域名 无需服务器.无需域名.云开发直接上线 特点:支持用户投稿,后台审核后会发订阅消息给用户提示作品审核状态,增加用户粘性,支持后端修改 ...

  3. 基于微信小程序云开发的投票小程序源码,图文投票微信小程序源码

    功能介绍 投票活动十分火,商家,企业,机构偶尔都会来一场投票活动评选,本小程序支持图文投票,简单方便.随时随地完成投票,可以方便设定投票模式(按天按全程,投票数限定). 本代码前后端完整代码包投票列表 ...

  4. 基于小程序云开发的在线答题小程序源码含答题分类答题记录错题集适合学习适合毕业设计使用

    基于小程序云开发开发的在线答题小程序源码 核心功能: 1.答题分类 2.开始答题 3.答题评分 4.答题记录 5.错题集 部分界面截图: 如有疑问,可联系博主!

  5. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  6. Thinkphp开发微信商城小程序源码拼团小程序源码带后台+前端小程序拼团源码仿拼多多

    码说明:Thinkphp开发微信商城小程序源码拼团小程序源码带后台+前端小程序拼团源码仿拼多多 其它说明: 基于小程序的拼团应用,用户可通过拼团,随时发起拼团活动并分享给好友 拼团是商品营销和售卖的一 ...

  7. 2022基于云开发的去水印小程序源码

    正文: 这款去水印程序源码本人实测可用,而且有不同的前端样式,小程序是属于云开发的,没有后端,替换一下安全域名即可,非常的方便,完整的消息介绍我就放到压缩包了. 好了,废话就不多说了,有需要的自行去测 ...

  8. 医院陪诊小程序怎么开发-医院陪诊小程序源码功能

    目前医院陪诊新型行业已经占据了很大的市场所在,我们去医院看病找医生挂号帮忙取药有时候去外地人生地不熟的 自己转半天摸索不过来浪费时间 而且有时候一个人需要陪同比较放心,所以呢衍生出来了 热门的陪诊师 ...

  9. C语言/C++基础之爱心程序源码(附源码)

    C语言/C++基础之爱心程序 程序之美 前言 主体 运行效果 代码实例 结束语 程序之美 前言 爱心是什么?爱心是能鼓起你生命风帆的激励.爱心是什么?爱心是雪中送炭式的资助.爱心是什么?爱心是抚慰你受 ...

  10. 最新UI云开发壁纸微信小程序源码/+在线审核+视频教程+支持用户投稿

    目录 程序介绍 特点: 本次版本集合了前两个版本所有的功能并有以下的更新 首页截图 程序介绍 本壁纸表情包头像小程序采用(dcloud云开发)所以无需服务器与域名 支持微信QQ双端小程序也就是说可以打 ...

最新文章

  1. https refused 解决方法
  2. STM32 基础系列教程 37 - Lwip_igmp
  3. Object Pascal 中类型
  4. 怎么定义html的整体的宽度,html怎么设置最大宽度
  5. JS 创建自定义对象的方法
  6. php框架所用到的核心概念,【PHP】PHP现代框架代表-Laravel框架核心技术特性
  7. 银行员工会购买自己银行的理财产品吗?
  8. JAVA手写ArrayList以及LinkedList
  9. qmake生成VS的vcproj/sln工程文件
  10. 07 设置View的显示与隐藏
  11. 表格中点击获得行列的值、刷新页面
  12. [置顶] 原创鼠标拖动实现DIV排序
  13. 谈谈创业这点事(4)
  14. 【微信小程序】(一)开发工具下载与界面介绍
  15. php 打水印,PHP 给图片制作水印的方法
  16. 【漏洞利用】逻辑漏洞之任意账号密码重置详解
  17. python因子分析案例_python数据分析单因子分析
  18. cocosjs游戏前端大厅源码分析之启动场景
  19. 自学玩编程需要具备哪些能力
  20. 鲸探发布点评:8月24日发售《LuLu猪西游》系列数字藏品

热门文章

  1. 《ffmpeg basics》中文版 -- 16.数字音频
  2. 开源项目SMSS开发指南(二)——基于libevent的线程池
  3. Python入门(一) —— 编程基础
  4. SSH建立连接的过程
  5. hihocoder01串
  6. qiime2-2022.8基于ubuntu的安装教程
  7. 基于TCAM的路由查找及表项管理
  8. 超视频时代,数据洪峰何解?
  9. Python matplotlib 通过 plt.scatter画空心圆标记出特定的点
  10. STM32控制ESP8266透传到私有HTTP服务器(Json数据格式)