ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

跃锦成龙之表白流星

2020-05-08 15:42:45  阅读:295  来源: 互联网

标签:rand star 表白 int void 成龙 跃锦 40 meteor


C语言表白流星

流星雨代表着浪漫,代表着两个人的快乐,代表着幸运,代表着最美好的回忆,和永恒的不变的愿望,废话不多少赶快将代码运行起来,结果和源代码如下
但是如果复制粘贴时注意一下你想放入图片的命名哟,文件的摆放可供参考,想要了解更多可以关注一下,或者可直接搜所跃锦成龙了解更多c语言知识、C语言小技能和有意思的代码
在这里插入图片描述

#include<time.h>
#include <graphics.h>//图形库头文件
#pragma comment(lib,"winmm.lib")
#define MAXStar 3000 //星星
#define MAXMETEOR 200 //流星
IMAGE img1, img2, img3, img4;

void initStar(int i);//也调用在了initData()里需要做申明
void initMeteor(int i);//也调用在了initData()里需要做申明
//星星 做个申明
struct STAR
{
    int x, y;
    int v;
    int color;
}star[MAXStar];
//流星 做个申明
struct STAR0
{
    int x, y;
    int v;
    int style;//图片样式
}meteor[MAXMETEOR];
//制造数据
void  initData()
{
    //初始化数据
    loadimage(&img1, "1.jpg", 40, 40);
    loadimage(&img2, "2.jpg", 40, 40);
    loadimage(&img3, "3.jpg", 40, 40);
    loadimage(&img4, "4.jpg", 40, 40);
    //初始化星星
    int i;
    for (i = 0; i < MAXStar; i++)
    {
        initStar(i);
        star[i].x = rand() % 800;
    }
    //初始化流星
    for (i = 0; i < MAXMETEOR; i++)
    {
        initMeteor(i);
        meteor[i].x = rand() % 1000;
    }
}
//初始化星星
void initStar(int i)
{
    star[i].x = rand() % 1000;
    star[i].y = rand() % 1000;
    star[i].v = rand() % 10;
    star[i].color = RGB(star[i].v * 51, star[i].v * 51, star[i].v * 51);//255/5=51;
}
//初始化流星
void initMeteor(int i)
{
    meteor[i].x = rand() % 2000 - 10000;
    meteor[i].y = -200;
    do
    {
        meteor[i].v = rand() % 30 + 1;
    } while (meteor[i].v < 3);//避免出现速度过慢的
    meteor[i].style = rand() % 4 + 1;//1-4
}
//移动星星
void moveStar(int i)
{
    putpixel(star[i].x, star[i].y, 0);
    star[i].x += star[i].v;
    if (star[i].x > 1000)
        initStar(i);
    putpixel(star[i].x, star[i].y, star[i].color);
}
//移动流星
void moveMeteor()
{
    for (int i = 0; i < MAXMETEOR; i++)
    {
        meteor[i].x += meteor[i].v * 0.5;//初始化一个水平方形打的速度
        meteor[i].y += meteor[i].v * 1;//初始化方向加快一点速度  也可以不用 * 后面的数值    
    }
}
//画流星
void drawMeteor()
{
    for (int i = 0; i < MAXMETEOR; i++)
    {
        switch (meteor[i].style)
        {
        case 1:
            putimage(meteor[i].x, meteor[i].y, &img1, SRCPAINT);
            break;
        case 2:
            putimage(meteor[i].x, meteor[i].y, &img2, SRCPAINT);
            break;
        case 3:
            putimage(meteor[i].x, meteor[i].y, &img3, SRCPAINT);
            break;
        case 4:
            putimage(meteor[i].x, meteor[i].y, &img4, SRCPAINT);
            break;
        }
    }
}

int main()
{
    srand((unsigned int)time(NULL));
    initgraph(1000, 700);
    initData();
    mciSendString("open 123.mp3 ", 0, 0, 0);//背景音乐
    mciSendString("play 123.mp3 repeat", 0, 0, 0);

    while (1)
    {

        cleardevice();
        for (int i = 0; i < MAXStar; i++)
        {
            moveStar(i);
        }
        moveMeteor();
        drawMeteor();
        Sleep(100);

    }
    closegraph();
    return 0;
}

在这里插入图片描述

标签:rand,star,表白,int,void,成龙,跃锦,40,meteor
来源: https://blog.csdn.net/m0_46179473/article/details/105955054

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有