VS CC++表白项目

VS CC++表白项目,第1张

这个代码适合表白用的:

 

代码如下:

#include
#include //第三方图形库
#include
#include

#include
#pragma comment(lib,"winmm.lib")

#define STAR_NUM 500
#define METEOR_NUM 100

struct Star        //小星星
{
    int x;
    int y;
    int r;
    int speed;    //速度
    COLORREF color;    //颜色
};
struct Meteor
{
    int x;
    int y;
    int speed;
};
struct Star star[STAR_NUM];
struct Meteor meteor[METEOR_NUM];
/*@小星星*/
//初始化星星
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;
    star[i].color = RGB(rand() % 256, rand() % 256, rand() % 256);
}

//绘制星星
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 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;
        }
    }
}

/*@流星*/
IMAGE bk;
IMAGE img[2];
void loadImg()
{
    loadimage(img + 0, _T("./Release1/1.jpg"),50,50);
    loadimage(img + 1, _T("./Release1/2.jpg"),50,50);
}
//初始化流星
void initMeteor(int i)
{
    meteor[i].x = rand() % (2 * getwidth()) - getwidth();
    meteor[i].y = 20 - 200;
    meteor[i].speed = rand() % 15 + 1;
}
//绘制流星:贴图
void drawMeteor()
{
    for (size_t i = 0; i < METEOR_NUM; i++)
    {
        putimage(meteor[i].x, meteor[i].y, img + rand() % 2,SRCPAINT);
    }
}
//移动流星
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()
{
    //播放音乐
    mciSendString(_T("open ./Release1/1.mp3 alias bgm"), NULL, 0, NULL);//./音乐所在文件夹名称/音乐名字.格式
    mciSendString(_T("play bgm"), NULL, 0, NULL);

    //设置随机种子
    srand((unsigned)time(NULL));
    
    //设置背景颜色
    setbkmode(TRANSPARENT);

    //设置文字样式
    settextstyle(30, 0, _T("华文行楷"));
    
    //检测如果没有按键按下,就一直循环
    while (!_kbhit())
    {
        //清屏
        cleardevice();
        putimage(0, 0, &bk);
        
        //设置文字颜色
        settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));

        //输出文字
        int tx = (getwidth() - textwidth(_T("Zhai dream point, je t’aime"))) / 2;
        outtextxy(tx, 0/*(y坐标)*/, _T("XXX我喜欢你"));

        outtextxy(tx, 100/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 150/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 200/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 250/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 300/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 350/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 400/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 450/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 500/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 550/*(y坐标)*/, _T("话语(可删除)"));
        outtextxy(tx, 600/*(y坐标)*/, _T("-------------name"));

        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("./Release1/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;
}

下面是素材图片,音乐请自行下载,我用的音乐是浪漫空气

流星图片

背景图片

 

以上就是全部内容

另外,祝你成功脱单!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/3002715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存