欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

C语言练手项目—流星雨表白—程序员的浪漫—脱单神器

发布时间:2023/12/20 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C语言练手项目—流星雨表白—程序员的浪漫—脱单神器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

穿越时间的屏障,扭曲,联结,消逝,重回。流星带来的是什么?绝望,亦或是希望。守望同一片天空的那份期望,三年前的相遇,你说出了你的名字,在比我名字更久之前的你。三年后的我,因为失去了什么而感到失落。现在我终于知道了,不要再走散了吧。醒来后还能记起来吗?你的名字是什么?

今天就为大家带来浪漫流星雨表白程序教程

先看下效果(背景照片、字体、流星雨图案这些都可依据个人喜好更换哈)

 怎么写呢,必不可少的图形库不能丢

#include<easyx.h>

再加一个多媒体头文件

#include<mmsystem.h>

设置背景图以及流星雨数量与图片

#define NUM 100 //流星雨数量//背景图 IMAGE img_bk[2]; //流星图片 IMAGE img_meteor[2];

设置流星位置与速度

struct Meteor //流星 {int x;int y;int speed; //速度 }; struct Meteor meteor[NUM];

背景音乐

mciSendString(_T("open ./images/浪漫空气.mp3 alias bgm"), NULL, 0, NULL);

字体样式

settextstyle(40, 0, _T("华文行楷"));

字体颜色

settextcolor(RGB(rand()%256, rand() % 256, rand() % 256));

背景图片

putimage(0, 0, img_bk);

主角登场,表白语句

outtextxy(450, 20, _T("德克萨斯,我喜欢你"));outtextxy(200, 100, _T("爱意随风起,风止意难平。"));outtextxy(200, 150, _T("我还是很喜欢你,像风吹过几万里"));outtextxy(200, 200, _T("春风十里不如你,我喜欢你"));outtextxy(200, 250, _T("曾经有份真挚的感情摆在我面前,我却没有珍惜"));outtextxy(200, 300, _T("春风十里,不及你嫣然一笑。"));outtextxy(200, 350, _T("天青等烟雨,而我在等你"));outtextxy(200, 400, _T("因为我爱你,所以纵容你"));outtextxy(200, 450, _T("情书是抄的,爱你是真的。"));outtextxy(200, 500, _T("----------------------------爱你的拉普兰德"));

气氛组少不了的礼花

for (size_t i = 0; i < 10; i++){settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));outtextxy(rand()%1200, rand() % 800, _T("♥"));outtextxy(rand() % 1200, rand() % 800, _T("🌺"));}Sleep(1000);

一些细节

//初始化流星 void initMeteor(int i) {meteor[i].x = rand() % (1200*2) - 1200; //(0-1200,1200)meteor[i].y = rand() %20 - 200; //(-78,-200)meteor[i].speed = rand() % 15 + 1; } //绘制流星 void drawMeteor() {for (int i = 0; i < NUM; i++){putimage(meteor[i].x, meteor[i].y, img_meteor + rand() % 2,SRCPAINT);} } //移动流星 void moveMeteor() {//改变坐标就可以实现移动了,斜向x,y都要变化for (int i = 0; i < NUM; i++){meteor[i].x += meteor[i].speed;meteor[i].y += meteor[i].speed;if (meteor[i].y > getheight() || meteor[i].x>getwidth()){initMeteor(i);}} }

主函数

int main() {//创建图形窗口initgraph(1200, 800,EW_SHOWCONSOLE);//加载图片loadimage(img_bk, _T("./images/welcome.png"),1200,800);loadimage(img_bk + 1, _T("./images/bk.png"),1200,800);loadimage(img_meteor, _T("./images/1.jpg"), 50, 50);loadimage(img_meteor+1, _T("./images/2.jpg"), 50, 50);welcome();for (size_t i = 0; i < NUM; i++){initMeteor(i);}//防止闪屏,双缓冲BeginBatchDraw(); //开启双缓冲绘图while (true){//控制画面的帧率 26帧 60int begin = clock(); //获取程序运行时间(毫秒数)putimage(0, 0, img_bk + 1);drawMeteor();moveMeteor();//Sleep(50); //让程序休眠FlushBatchDraw();//刷新//获取程序总共的执行时间int timeRemaining = clock() - begin;//计算每帧需要的时间int timeFrame = 1000.0 / 60;//获取程序执行时间有没有超过,每帧执行的最大时间int delay = timeFrame - timeRemaining;if (delay > 0){printf("%d\n", delay); Sleep(delay); //动态变化}}EndBatchDraw();

有个地方忘说了,记得设置透明背景模式

setbkmode(TRANSPARENT);

再完善一下整体格式与代码完整度就大功告成啦。

获取游戏源码及素材可以进来我的学习圈【806041599】,进来一起学习交流,有一些资料可以帮助大家更好的学习,在学习C语言的过程中遇到任何的问题,都可以发出来一起讨论,每天晚上20:00都会有直播给大家分享C/C++编程学习知识和路线方法,会不定期更新最新的教程和学习方法,大家都是学习C/C++的,或是转行,或是大学生,还有工作中想提升自己能力的前端党,如果你是正在学习C/C++的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实。

总结

以上是生活随笔为你收集整理的C语言练手项目—流星雨表白—程序员的浪漫—脱单神器的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。