C语言表白流星雨(二)

流星不下雨二

此代码可与之前发过的表白流星进行对比学习与借鉴,代码并非太多,可理解之后自行实践操作 进行关注可了解更多代码小知识,对于初学者的话希望对你的编程有帮助
该流星雨还是比较浪漫与实在运行结果如下图所示该文件已经上传百度网盘中,各位热爱C语言的小伙伴们可以自行提取收藏或下载,也可以联系博主获取该作品的压缩包文件,有什么运行出问题的也可以联系博主请教或指导。
C语言表白流星雨(二)_第1张图片
以下为该小实例的部分C语言源代码:

#include 
#include 
#include 
#include 
#pragma comment(lib,"winmm.lib")
#include 
#include 
#define MAXSTAR1 6000//画星星的数目
#define MAXSTAR 1000//画流星(图片)的输入
struct STAR
{
    int x, y, step, style;
}star[MAXSTAR];
struct STAR1
{
    int x, y, step, color;

}star1[MAXSTAR1];
IMAGE image;
/*
int main()
{
 initgraph(640,640); //创建一个窗口
 mciSendString("open 等你下课.mp3 alias music",0,0,0);//加载音乐
 mciSendString("play music repeat",0,0,0);//播放音乐
 loadimage(&image,"2.jpg",640,640);
 putimage(0,0,&image);


 while(1);/(10000);
 return 0;
}
*/
//星星模块
void initStar1(int i);
void moveStar1(int i);
//流行模块
void initstar(int i);
void moveStar();
//初始化
void initData();
int main()
{
    initData();
    mciSendString("open 等你下课.mp3 ", 0, 0, 0);//背景音乐
    mciSendString("play 等你下课.mp3 repeat", 0, 0, 0);
    while (1)
    {
        BeginBatchDraw();
        cleardevice();
        for (int i = 0; i < MAXSTAR1; i++)
        {
            moveStar1(i);
        }
    }
    return 0;
}
void moveStar1(int i)
{
    putpixel(star1[i].x, star1[i].y, 0);
    star1[i].x += star1[i].step;
    if (star1[i].x > 1000)
        initStar1(i);
    putpixel(star1[i].x, star1[i].y, star1[i].color);
}
void initData()
{
    srand((unsigned int)time(NULL));
    initgraph(1000, 500);

    //初始化星空
    loadimage(&image, "1.jpg", 30, 30);
    int i = 0;
    for (i = 0; i < MAXSTAR1; i++)
    {
        initStar1(i);
        star1[i].x = rand() % 1000;
    }

    //初始化流星
    for (i = 0; i < MAXSTAR; i++)
    {
        initstar(i);
    }
}
void initStar1(int i)
{
    star1[i].x = 0;
    star1[i].y = rand() % 480;
    star1[i].step = rand() % 5;
    star1[i].color = RGB(star1[i].step * 51, star1[i].step * 51, star1[i].step * 51);
}
//流行实现

void initstar(int i)
{
    star[i].x = rand() % 1280 - 640;  //-640 --640
    star[i].y = -144;
    do
    {
        star[i].step = rand() % 30 + 1;
    } while (star[i].step < 5);
    star[i].style = rand() % 3 + 1;
}
void moveStar()
{
    for (int i = 0; i < MAXSTAR; i++)
    {
        star[i].x += star[i].step;
        star[i].y += star[i].step;
    }
}
void drawStar()
{
    for (int i = 0; i < MAXSTAR; i++)
    {
        switch (star[i].style)
        {
        case 1:
            putimage(star[i].x, star[i].y, &image, SRCPAINT);
            break;
        }
    }
}

如果博主及时没有给大家回复可以添加该QQ号:
QQ:762623862(凋落的花蕊)

你可能感兴趣的:(跃锦成龙,C程序代码表白,c++)