前言:
如今你们对“流星雨代码教程”都比较注意,咱们都想要知道一些“流星雨代码教程”的相关内容。那么小编在网络上搜集了一些关于“流星雨代码教程””的相关文章,希望你们能喜欢,看官们一起来学习一下吧!作为一个未来可能会成为一个专业程序员的小伙们,不知道你们现在学到哪里了,学了点东西之后有没有想在你女朋友面前大大的表现表现呢
直接源码分享:
#define MAXSTAR 1314
#define MAXMETEOR 520
//结构体
//几个星星:500
struct Star
{
int x, y;
int color;
int step;
}star[MAXSTAR];
//流星结构
struct Meteor
{
int x, y;
int style;
int step;
}meteor[MAXMETEOR];
IMAGE img1, img2;//1.定义图片变量
void printText()
{
//设置文字颜色
settextcolor(RGB(255, 0, 255));//三原色:红,绿,蓝
//调整字体大小
settextstyle(50, 0, "华文行楷");
//你的文采:发到公屏上
/*
你是年少的喜欢——这句话倒过来也是你
你也犯罪了,把我的心偷走了
把我的名字寄到你家户口本上几天能到货
账都归你管,而你,归我管
今天我去跑步了,你知道我跑了多远吗,我跑了一个爱你的形状
吟诵诗千卷,才发现最美的诗是你
有部电影的名字居然和我喜欢的人的名字一样。你的名字
愿我如星君如月,夜夜流光相皎洁;不见白头相携老,只许与君共天明
你就像月亮,散发着皎洁的光芒,而我愿做一颗仰望你的星辰,夜夜陪伴在你身边
今夕何夕,见此良人
ABCDEFGHIJKLMNOPQRSTVWXYZ
*/
//在指定位置输出字符串
outtextxy(450, 20, "七夕到了,我喜欢你");
//设置文字颜色
settextcolor(RGB(0, 255, 255));//三原色:红,绿,蓝
//调整字体大小
settextstyle(40, 0, "华文行楷");
outtextxy(200, 100, "你是年少的喜欢——这句话倒过来也是你");
outtextxy(200, 150, "你也犯罪了,把我的心偷走了");
outtextxy(200, 200, "把我的名字寄到你家户口本上几天能到货");
outtextxy(200, 250, "账都归你管,而你,归我管");
outtextxy(200, 300, "今天我去跑步了,你知道我跑了多远吗,我跑了一个爱你的形状");
outtextxy(200, 350, "吟诵诗千卷,才发现最美的诗是你");
outtextxy(200, 400, "ABCDEFGHIJKLMNOPQRSTVWXYZ");
outtextxy(200, 450, " 有部电影的名字居然和我喜欢的人的名字一样。你的名字");
outtextxy(200, 500, "愿我如星君如月,夜夜流光相皎洁;不见白头相携老,只许与君共天明");
outtextxy(200, 550, "你就像月亮,散发着皎洁的光芒,而我愿做一颗仰望你的星辰,夜夜陪伴在你身边。");
outtextxy(300, 600, "----------------------------------爱你的风尘");
_getch();//按键
}
//放大招:流星雨
//初始化星星
void initStar(int i)
{
//随机产生坐标,颜色,速度
star[i].x = rand() % 1200;
star[i].y = rand() % 800;
star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);
star[i].step = rand() % 10;
}
//画星星
void drawStar(int i)
{
//画像素点:在初始化星星的坐标
putpixel(star[i].x, star[i].y, star[i].color);
//移动星星:给它速度
star[i].x += star[i].step;
//跑到窗口外面的星星:初始化
if (star[i].x >= 1200)
{
putpixel(star[i].x, star[i].y, star[i].color);
initStar(i);
}
}
//流星
//初始化流星
void initMeteor(int i)
{
meteor[i].x = rand()%2200-1000;//[-1200,1199]
meteor[i].y = rand()%20-200;
meteor[i].style = rand() % 2; //0,1
meteor[i].step = rand() % 30 + 1;//+3 :流星的速度不为0
}
//画流星:贴图技术
void drawMeteor(int i)
{
//3.贴图:显示图片
for (i = 0; i < MAXMETEOR; i++)
{
switch (meteor[i].style)
{
case 0:
putimage(meteor[i].x, meteor[i].y, &img1,SRCPAINT);
break;
case 1:
putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);
break;
}
}
}
//移动流星
void moveMeteor(int i)
{
for (i = 0; i < MAXMETEOR; i++)
{
meteor[i].x += meteor[i].step;
meteor[i].y += meteor[i].step;
if (meteor[i].x >= 1200 || meteor[i].y >= 800)
{
initMeteor(i);
}
}
}
int main()
{
//2.加载图片
loadimage(&img1, "1.jpg", 50, 50);
loadimage(&img2, "2.jpg", 50, 50);
//界面:初始化图形环境宽度,高度
initgraph(1200, 800);
//随机函数种子:如果不播种:随机出来的是伪随机
srand((unsigned int)time(NULL));
printText();
int i = 0;
for ( i = 0; i < MAXSTAR; i++)
{
initStar(i);
}
for (i = 0; i < MAXMETEOR; i++)
{
initMeteor(i);
}
drawMeteor(i);
while (1)
{
BeginBatchDraw();
cleardevice();
for (i = 0; i < MAXSTAR; i++)
{
drawStar(i);
}
drawMeteor(i);
moveMeteor(i);
Sleep(100);
EndBatchDraw();
}
while (1); //卡屏 _getch()函数
closegraph();//关闭图形环境
return 0;
}
代码都给你们了,还在等什么呢?GOGOGO!
代码中的表白话语都可以随自己的喜好进行更改
自学C/C++编程难度很大,如果你想更快提升自己的编程能力和编写项目的水平,欢迎一起共同成长!
分享(源码、项目实战视频、项目笔记,基础入门教程)
免费学习:
免费学习: