資源簡介
池塘夜降彩色雨VC++6.0的實現(前提庫文件中包含easyx.h文件若沒有可在網上下載)
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#define?LEN?sizeof(struct?rainDrop)
#pragma?comment?(?lib?“Winmm.lib“?)
int?rainDropNumber=60;
int?downSpeed=20;
struct?rainDrop?*head;
struct?rainCircle
{
int?x;
int?y;
int?r;
int?curR;
int?rainCircleStep;
};
struct?rainDrop
{
int?startX;
int?startY;
int?endY;
int?curX;
int?curY;
int?rainColor;
int?rainLineStep;
int?rainLineLength;
int?status;
struct?rainCircle?water;
struct?rainDrop?*next;
};
void?initgraphics(void)
{
int?gmode?gdriver;
gdriver=DETECT;
initgraph(&gdriver&gmode““);
}
struct?rainDrop?*creatDrop(void)
{
struct?rainDrop?*p;
p=(struct?rainDrop?*)malloc(LEN);
p->startX=rand()%640;
p->startY=rand()%430;
p->endY=430+rand()%50;
p->curX=p->startX;
p->curY=p->startY;
p->rainLineStep=8;
p->rainColor=rand()%15+1;
p->rainLineLength=rand()%10+10;
p->status=0;
p->water.x=p->startX;
p->water.y=p->endY;
p->water.r=rand()%40;
p->water.curR=rand()%2;
p->water.rainCircleStep=rand()%2+1;
p->next=NULL;
return(p);
}
void?recreatDrop(struct?rainDrop?*p)
{
p->startX=rand()%640;
p->startY=rand()%430;
p->endY=430+rand()%50;
p->curX=p->startX;
p->curY=p->startY;
p->rainLineStep=8;
p->rainColor=rand()%15+1;
p->rainLineLength=rand()%10+10;
p->status=0;
p->water.x=p->startX;
p->water.y=p->endY;
p->water.r=rand()%40;
p->water.curR=rand()%2;
p->water.rainCircleStep=rand()%2+1;
}
void?creatRain(void)
{
struct?rainDrop?*p1*p2;
int?i;
p1=p2=creatDrop();
head=p1;
for(i=0;i {
p2=creatDrop();
p1->next=p2;
p1=p2;
}
}
void?updateRainLineData(struct?rainDrop?*p)
{
if(p->rainLineStep%5==0)
p->rainLineStep++;
p->curY+=p->rainLineStep;
p->startY=p->curY-p->rainLineLength;
}
void?drawRainLine(struct?rainDrop?*p)
{
setcolor(p->rainColor);
line(p->startXp->startYp->curXp->curY);
}
void?clearRainLine(struct?rainDrop?*p)
{
for(double?j=0k=0m=0;j<255k<255m<255;j+=0.1k+=0.2m+=0.3)
p->rainColor?=?RGB(p->rainColor+j?p->rainColor+k?p->rainColor+m);
setcolor(p->rainColor);
line(p->startXp->startYp->curXp->curY);
}
void?rainDropDown(struct?rainDrop?*p)
{
if(p->curY>=p->endY)
{
clearRainLine(p);
p->status=1;
}
else
{
clearRainLine(p);
updateRainLineData(p);
drawRainLine(p);
}
}
void?updateRainCircleData(struct?rainDrop?*p)
{
p->water.curR+=p->water.rainCircleStep;
}
void?drawRainCircle(struct?rainDrop?*p)
{
for(double?j=0k=0m=0;j<255k<255m<255;j+=0.1k+=0.2m+=0.3)
p->rainColor?=?RGB(p->rainColor+j?p->rainColor+k?p->rainColor+m);
setcolor(p->rainColor);
circle(p->water.xp->water.yp->water.curR);
}
void?clearRainCircle(struct?rainDrop?*p)
{
setcolor(BLACK);
circle(p->water.xp->water.yp->water.curR);
}
void?fallToWater(struct?rainDrop?*p)
{
if(p->water.curR>=p
評論
共有 條評論