不会吧!不会吧!下个星期四就是七夕节了,你还是单身嘛?
自古七夕好像“关我屁事”。
朋友:距离七夕没剩几天了。你准备怎么过?
你说:嗯,什么?七夕到了?七夕是什么,能吃吗?你问我怎么过???
但是作为一个资深的bug程序员,我不允许你们好不容易约到心仪的妹子出去玩,一天之后没有成效,于是我写了这篇文章。
当你用代码把你们一天的照片风景留念都保存起来,而不是简单发个朋友圈,这份独特的操作,还拿不下她?现在把代码程序准备好,到时候直接替换图片就完美了!
那么话不多说,我们直接开肝!
首先你需要准备这样一些素材:
素材分为照片(可以替换为你们两个的七夕游玩照)音乐文件(可以替换为你觉得更浪漫的音乐)以及背景图,当然这个你也可以去找个好看点的背景!
然后就是编译环境,你需要安装你写代码的编译环境,建议的是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;//记录翻看的照片的页码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.jpgsprintf(fileName, "%d.jpg", i);loadimage(girlBig i, fileName, 250, 350);loadimage(girlSmall i, fileName, 100, 130);}}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);}}void drawMap(){//画背景putimage(0, 0, &backImg);//画小图 第0张和第1张putimage(90, 160, girlSmall 0);//100, 130putimage(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版本");//打印文字}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);}}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);}}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 3putimage(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语言的道路上披荆斩棘!
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!大家也要把握住大学的时光,抓住成长的每一次机会哦~
对于C/C 感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C 的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!