【精品】泡泡屏保源代码
泡泡屏保源代码
相信很多人都见过泡泡屏保吧,很多人也许就在用,确实很漂亮,不过大家又没有想过怎么用C++代码写出来呢, 看下面的代码。
/* 泡泡屏保 */
#include
#include
#include
#include
#include
#include
#include
#define MAX 12
typedef struct
{
float x,y;
float vx,vy;
int color;
}ball;
void main()
{
int gd=DETECT,gm,i,j,k,t;
ball ba[MAX];
float dt=7e-2;
int issuit(ball *,int i);
void hitpro(ball*,int ,int);
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"");
srand(time(NULL));
for(i=0;i589) ba[j].vx=-ba[j].vx;
if (ba[j].y<51||ba[j].y>429) ba[j].vy=-ba[j].vy;
}
cleardevice();
for(i=0;i<4*MAX;i++)
{
t=i%MAX;
setcolor(ba[t].color);
circle(ba[t].x,ba[t].y,50); }
delay(2000);
}
closegraph();
}
int issuit( ball *b1,int n)
{
int i,a,b,c,d;
a=b1[n].x;
b=b1[n].y;
for(i=0;i102.0) return ;
a=(ba[k].x-ba[j].x)/r;
b=(ba[k].y-ba[j].y)/r;
c=-b;
d=a;
r=sqrt(c*c+d*d);
c/=r;
d/=r;
tx1=ba[j].vx*a+ba[j].vy*b;
ty1=ba[j].vx*c+ba[j].vy*d;
tx2=ba[k].vx*a+ba[k].vy*b;
ty2=ba[k].vx*c+ba[k].vy*d;
ba[j].vx=tx2*a+ty1*c;
ba[j].vy=tx2*b+ty1*d;
ba[k].vx=tx1*a+ty2*c;
ba[k].vy=tx1*b+ty2*d;