C语言如何实现流星雨效果
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下C语言如何实现流星雨效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!上次忘记说了,因为我们是用C语言写
千家信息网最后更新 2026年11月02日C语言如何实现流星雨效果
小编给大家分享一下C语言如何实现流星雨效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
上次忘记说了,因为我们是用C语言写的所以是控制台程序,创造不出来界面,那怎么办呢,我们就要用Windows的远房表亲EasyX图形库来建界面了,上次忘记说了,望谅解!!!
我们今天就和往常一样一步一步的教大家如何去完成这个"流星雨"表白程序吧!
一、头文件
最近总是被吐槽为什么没有头文件,原因是呢,我觉得我分享项目最主要的目的是让大家学知识,头文件这些没营养的,开始就没有考虑,但鉴于需要的小伙伴太多了,我就发出来吧!!!
#include#include //第三方图形库,需要安装#include #include #include #pragma comment(lib,"winmm.lib")
二、结构体
老朋友结构体他又来了,不用多说,直接看
struct Star //小星星{ int x; int y; int r; int speed; //速度 COLORREF color; //颜色};struct Meteor{ int x; int y; int speed;};三、初始化
初始化星星以及流星,要用到随机函数哦,让星星和流星看起来更自然。
//初始化星星void initStar(int i){ star[i].x = rand() % getwidth(); star[i].y = rand() % getheight(); star[i].r = rand() % 3 + 1; star[i].speed = rand() % 5; //0 1 2 3 4 star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);}//初始化流星void initMeteor(int i){ //[0,2400) //[-1200,1200) meteor[i].x = rand() % (2 * getwidth()) - getwidth(); //[-1200,1200) meteor[i].y = 20 - 200; meteor[i].speed = rand()+1;}四、绘制函数
绘制星星以及流星,简单的贴图就行啦
绘制星星void drawStar(){ for (size_t i = 0; i < STAR_NUM; i++) { //putpixel(star[i].x, star[i].y, star[i].color); setfillcolor(star[i].color); solidcircle(star[i].x, star[i].y, star[i].r); }}//绘制流星void drawMeteor(){ for (size_t i = 0; i < METEOR_NUM; i++) { putimage(meteor[i].x, meteor[i].y, img + rand() % 2,SRCPAINT); }}五、移动函数
不仅流星要动,星星也要跟着动,怎么动才能更自然,自己也可以优化一下。
//星星的移动void moveStar(){ for (size_t i = 0; i < STAR_NUM; i++) { star[i].x+=star[i].speed; if (star[i].x > getwidth()) { star[i].x = 0; } }} //流星的移动void moveMeteor(){ for (size_t i = 0; i < METEOR_NUM; i++) { meteor[i].x += meteor[i].speed; meteor[i].y += meteor[i].speed; if (meteor[i].x >= getwidth() || meteor[i].y >= getheight()) { initMeteor(i); } }}六、界面设计
接下来是我们的界面设计函数了,这个也是大家自由发挥的地方,可以自己去查一些界面的设置函数,自己设计自己的界面,里面的情话就可以自己去发挥了!!!
void welcome(){ //播放音乐 mci media device interface mciSendString(_T("open ./images/浪漫空气.mp3 alias bgm"), NULL, 0, NULL); mciSendString(_T("play bgm"), NULL, 0, NULL); //设置随机数种子 srand((unsigned)time(NULL)); /*@思考:表白的话语*/ //设置背景模式 setbkmode(TRANSPARENT); //设置文字样式 settextstyle(40, 0, _T("华文行楷")); //如果没有按键按下,就一直循环 while (!_kbhit()) { //清屏 cleardevice(); putimage(0, 0, &bk); //设置文字颜色 settextcolor(RGB(rand()%256, rand() % 256, rand() % 256)); //输出文字 int tx = (getwidth() - textwidth(_T("XXX我喜欢你"))) / 2; outtextxy(tx, 20, _T("XXX我喜欢你")); outtextxy(200, 100, _T("血包我不要,我只要你")); outtextxy(200, 150, _T("老师我在床上更爱你")); outtextxy(200, 200, _T("宝 你就想cf里的源武器 便宜但没人要")); outtextxy(200, 250, _T("春风十里 ,我只爱你")); outtextxy(200, 300, _T("我的程序只有你一个主函数")); outtextxy(200, 350, _T("孤单不是与生俱来,而是由你爱上一个人的那一刻开始。")); outtextxy(200, 400, _T("如果奇迹有颜色,那一定是彩虹的颜色")); outtextxy(200, 450, _T("山有木兮木有枝,心悦君兮君不知")); outtextxy(200, 500, _T("我从不畅享未来,遇到了你以后我每天都在想")); outtextxy(200, 550, _T("------------ 爱你XXX")); for (size_t i = 0; i < 10; i++) { settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256)); outtextxy(rand()%getwidth(), rand()%getheight(), _T("♥")); } Sleep(1000); }}七、主函数
最后是我们的主函数,把之前的函数一起调用起来吧
int main(){ //1,创建图形窗口 initgraph(1200, 800); //设置背景颜色 //setbkcolor(RGB(99, 99, 99)); //cleardevice(); loadimage(&bk, _T("./images/bk.png"),getwidth(),getheight()); for (size_t i = 0; i < STAR_NUM; i++) { initStar(i); } for (size_t i = 0; i < METEOR_NUM; i++) { initMeteor(i); } loadImg(); welcome(); //双缓冲绘图 BeginBatchDraw(); while (true) { cleardevice(); putimage(0, 0, &bk); drawStar(); moveStar(); drawMeteor(); moveMeteor(); FlushBatchDraw(); } EndBatchDraw();getchar(); return 0;}以上是"C语言如何实现流星雨效果"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
流星
函数
星星
界面
颜色
流星雨
语言
图形
文件
文字
爱你
程序
篇文章
移动
设计
效果
内容
我喜欢
来吧
界面设计
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技名片
美国互联网科技巨头监管
科技信息互联网
碳银互联网科技
远拓互联网科技
深圳艾佳互联网科技
互联网高科技股票
互联网金融监管科技
联恩商钥互联网科技有限公司
新华互联网科技校企合作
互联网科技公司招聘
阿里互联网科技公司
互联网科技大奖都有哪些公司
浙南科技城互联网大厦建设工程
互联网科技圈年度人物
上海科技产业互联网平台
互联网金融科技元年
中天科技中国工业互联网
南京一网一红互联网科技有限公司
唐山双旺合互联网科技产业园
互联网科技公司起名
以房互联网科技
赫美联合互联网科技
成都狮子座互联网科技
互联网科技公司需要的职位
互联网科技与大数据专业
深圳育鹏互联网科技有限公司招聘
科技互联网的核心竞争力
山东星卡互联网科技有限公司官网
互联网科技博主张洲