#define num 300
IMAGE star[3];
IMAGE img_bk[2];
struct Meteor
{
int x;
int y;
int speed;
}; Meteor meteor [num];
//初始化
void initMeteor(int i)
{
meteor[i].x=rand()%(2*getwidth())- getwidth();//流星出现的位置[-1200,1200]防止突兀出现
meteor[i].y=rand()%20-200;
meteor[i].speed=rand()%20+1;
}
//绘制100张流星图
void drawMeteor()
{
int i = 0;
for (i = 0; i < num; i++)
{
putimage(meteor[i].x, meteor[i].y, star+rand()%3, SRCPAINT);
}
}
//移动
void moveMeteor()
{
int i = 0;
for (i = 0; i < num; i++)
{
meteor[i].x += meteor[i].speed;
meteor[i].y += meteor[i].speed;
if (meteor[i].y > getheight() || meteor[i].x > getwidth())
{
initMeteor(i);
}
}
}
void Start()
{
int i = 0;
mciSendString(_T("open m.mp3"),NULL,0,NULL);
mciSendString(_T("play m.mp3"), NULL, 0, NULL);
srand((unsigned)time(NULL));
//设置背景
setbkmode(TRANSPARENT);
while (!_kbhit())//如果没有键盘按下,就一直循环,头文件"conio.h"
{
//清屏
cleardevice();
putimage(0, 0, img_bk+1);
settextstyle(25, 0, _T("华文行楷"));
settextcolor(RGB(rand() % 230, rand() % 111, rand() % 208));
outtextxy(200, 50, _T("曾经我把你遗落在星辰里,现在我踏着满天星辰去寻你"));
outtextxy(60, 100, _T("满眼星河皆是你,又觉满天星河不如你"));
for (i = 0; i < 10; i++)
{
outtextxy(rand() % getwidth(), rand() % getheight(), _T("♥"));
}
Sleep(1000);
}
}
int main()
{
int i = 0;
initgraph(1200, 800);
loadimage(img_bk + 1, _T("p.jpeg"), getwidth(), getheight());
loadimage(img_bk,_T("p1.jpg"),getwidth(),getheight());
loadimage(star, _T("star.jpg"), 50,50);
loadimage(star+1, _T("star1.jpg"), 50, 50);
loadimage(star+2, _T("star2.jpg"), 50, 50);
Start();
for (i = 0; i < num; i++)
{
initMeteor(i);
}
//防止闪屏
BeginBatchDraw();//双缓冲
while (true)
{
putimage(0, 0, img_bk);
drawMeteor();
moveMeteor();
Sleep(50);
FlushBatchDraw();//刷新
}
EndBatchDraw();
getchar();
return 0 ;
}



