程序员简单的表白方式(程序员必备七夕表白攻略)

不会吧!不会吧!下个星期四就是七夕节了,你还是单身嘛?

程序员简单的表白方式(程序员必备七夕表白攻略)(1)

自古七夕好像“关我屁事”。

朋友:距离七夕没剩几天了。你准备怎么过?

你说:嗯,什么?七夕到了?七夕是什么,能吃吗?你问我怎么过???

程序员简单的表白方式(程序员必备七夕表白攻略)(2)

但是作为一个资深的bug程序员,我不允许你们好不容易约到心仪的妹子出去玩,一天之后没有成效,于是我写了这篇文章。

当你用代码把你们一天的照片风景留念都保存起来,而不是简单发个朋友圈,这份独特的操作,还拿不下她?现在把代码程序准备好,到时候直接替换图片就完美了!

那么话不多说,我们直接开肝!

首先你需要准备这样一些素材:

程序员简单的表白方式(程序员必备七夕表白攻略)(3)

素材分为照片(可以替换为你们两个的七夕游玩照)音乐文件(可以替换为你觉得更浪漫的音乐)以及背景图,当然这个你也可以去找个好看点的背景!

然后就是编译环境,你需要安装你写代码的编译环境,建议的是VS2019/2022,然后要实现要用C语言实现窗口绘图还需要安装easyX图形库插件。注:可能要注意编译器与图形库插件不兼容的问题,VS可以直接安装。

代码展示:

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <graphics.h> #include <math.h> #include <mmsystem.h> #pragma comment(lib,"winmm.lib") /************************************************* * 背景:需要一个变量 * 四张大藤原:数组长度为四变量 * 四张小藤原:数组长度为四变量 **************************************************/ IMAGE backImg; //存放背景 IMAGE girlBig[4]; //存放四个大女孩 IMAGE girlSmall[4]; //存放四个小女孩 int smallNum = 0; //记录翻看的照片的页码 /************************************************ * 封装函数初始化数据:初始化变量 * 加载资源 * loadResource(); **************************************************/ void loadResource() { mciSendString("open 1.mp3 alias music", 0, 0, 0); mciSendString("play music repeat", 0, 0, 0); loadimage(&backImg, "background.jpg"); //批量加载:因为文件名字格式 for (int i = 0; i < 4; i )\ { char fileName[20] = ""; //0.jpg 1.jpg 2.jpg sprintf(fileName, "%d.jpg", i); loadimage(girlBig i, fileName, 250, 350); loadimage(girlSmall i, fileName, 100, 130); } } /************************************************ * 按钮处理 * 画按钮 * drawButton(int x,int y,char postion); * x,y 表示按钮的位置 postion:代表左边还是右边朝向 **************************************************/ void drawButton(int x,int y,char postion) //<-- l --> r { setfillcolor(BLACK); //设置填充颜色为黑色 solidcircle(x, y, 20); //已,x,y为坐标画一个20半径的圆 setlinecolor(WHITE); //设置线的颜色为白色 setlinestyle(PS_SOLID, 3, 0); //设置线的格式 if (postion == 'r') { circle(x, y, 15); line(x - 10, y, x 10, y); line(x 6, y - 4, x 10, y); line(x 6, y 4, x 10, y); } else if (postion == 'l') { circle(x, y, 15); line(x - 10, y, x 10, y); line(x - 6, y - 4, x - 10, y); line(x - 6, y 4, x - 10, y); } } /************************************************ * 初始化界面 * 画界面 * drawMap(); **************************************************/ void drawMap() { //画背景 putimage(0, 0, &backImg); //画小图 第0张和第1张 putimage(90, 160, girlSmall 0);//100, 130 putimage(90, 310, girlSmall 1); //画大图 putimage(345, 100, girlBig 0); //画按钮 drawButton(180, 120, 'r'); drawButton(110, 120, 'l'); //文字:爱情宣言 settextcolor(BLUE); //设置文字颜色为蓝色 settextstyle(25, 0, "字魂24号-镇魂手书"); //设置字大小和字体 //去掉文字背景 setbkmode(TRANSPARENT); //背景透明 //坐标计算:用截图工具去测坐标 outtextxy(350, 50, "顿开教育 爱情相册 v1.0版本"); //打印文字 } /************************************************ * 鼠标停留在按钮上一级鼠标离开按钮处理 * 处理用户交互 * clickButton() **************************************************/ void clickButton(int x,int y,char postion) { setfillcolor(BLACK); //设置填充颜色为黑色 solidcircle(x, y, 20); //已,x,y为坐标画一个20半径的圆 setlinecolor(YELLOW); //设置线的颜色为白色 setlinestyle(PS_SOLID, 3, 0); //设置线的格式 if (postion == 'r') { circle(x, y, 15); line(x - 10, y, x 10, y); line(x 6, y - 4, x 10, y); line(x 6, y 4, x 10, y); } else if (postion == 'l') { circle(x, y, 15); line(x - 10, y, x 10, y); line(x - 6, y - 4, x - 10, y); line(x - 6, y 4, x - 10, y); } } /************************************************ * 画矩形 * 小图片的矩形 * drawRect() **************************************************/ void drawRect(int flag) { if (flag == 1) { setlinecolor(GREEN); // putimage(90, 160, girlSmall 0);//100, 130 // putimage(90, 310, girlSmall 1); rectangle(90-5,160-5,90 100 5,130 160 5); setlinecolor(WHITE); rectangle(90 - 5, 310 - 5, 90 100 5, 130 310 5); } else if (flag == 2) { setlinecolor(GREEN); // putimage(90, 160, girlSmall 0);//100, 130 // putimage(90, 310, girlSmall 1); rectangle(90 - 5, 310 - 5, 90 100 5, 130 310 5); setlinecolor(WHITE); rectangle(90 - 5, 160 - 5, 90 100 5, 130 160 5); } } /************************************************ * 处理用户交互 * 处理鼠标操作 * userMoveMouse() **************************************************/ void userMoveMouse() { MOUSEMSG m; int flag = 1; while (1) { m = GetMouseMsg(); switch (m.uMsg) { //drawButton(180, 120, 'r'); //drawButton(110, 120, 'l'); case WM_MOUSEMOVE: //鼠标移动 //鼠标是否在按钮上:判断鼠标坐标是不是在圆里面 if (sqrt((double)(m.x - 180)*(m.x - 180) (m.y - 120)*(m.y - 120)) < 20) //右边 { clickButton(180, 120, 'r'); } else if (sqrt((double)(m.x - 110)*(m.x - 110) (m.y - 120)*(m.y - 120)) < 20) //左边 { clickButton(110, 120, 'l'); } else //当鼠标不在按钮上还原以前的按钮 { drawButton(180, 120, 'r'); drawButton(110, 120, 'l'); } break; case WM_LBUTTONDOWN://鼠标左键按下 if (sqrt((double)(m.x - 180)*(m.x - 180) (m.y - 120)*(m.y - 120)) < 20) //右边 { drawRect(flag); if (smallNum == 4) //图片全部放完 循环一次 { // putimage(90, 160, girlSmall 0);//100, 130 // putimage(90, 310, girlSmall 1); //要显示第0张和第1张 putimage(90, 160, girlSmall 0); putimage(90, 310, girlSmall 1); smallNum = 0; } if (smallNum == 2) { //0 1 2 3 putimage(90, 160, girlSmall 2); putimage(90, 310, girlSmall 3); } putimage(345, 100, girlBig smallNum); smallNum ; } //左边自己完善 else if (sqrt((double)(m.x - 110)*(m.x - 110) (m.y - 120)*(m.y - 120)) < 20) //左边 { //左边 作业 drawRect(flag); } flag ; if (flag == 3) flag = 1; break; } } } int main() { initgraph(932, 538); loadResource(); drawMap(); userMoveMouse(); getchar(); closegraph(); return 0; }

那么以上就是咱们本次送给大家的七夕秘密武器了!源码已经分享,大家可以自己去试试,现在把代码程序准备好,到时候直接替换图片就完美了!如果有偷懒的朋友想直接拿到这个程序也可以来找我哦!☟☟☟

为了帮助大家,轻松,高效学习C语言/C ,给大家分享我收集的资源,从最零基础开始的,帮助大家在学习C语言的道路上披荆斩棘!

编程学习书籍分享:

程序员简单的表白方式(程序员必备七夕表白攻略)(4)

编程学习视频分享:

程序员简单的表白方式(程序员必备七夕表白攻略)(5)

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!大家也要把握住大学的时光,抓住成长的每一次机会哦~

对于C/C 感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C 的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页