c语⾔编程屏保动画实例,⼀个⾮常棒的屏保源代码哈哈,看来我不贴个源码是不⾏了?
好,就贴⼀个!
#include
#include
#include
#include
#define NX 12
#define NY 25
int speed=9 ;
union REGS regs ;
int p[NX][3],px[NX],privatex=-1 ;
char gtext[NX][2*NY][2];
/*读取⿏标状态*/
void readm(int*mx,int*my,int*mbutt)
{
/*,x0=*mx,y0=*my,b0=*mbutt*/
int xnew,ynew,bnew ;
/* do*/
{
int86(51,®s,®s);
;
dx ;
bx ;
}
/* while(xnew==x0&&ynew==y0&&bnew==b0);*/
*mbutt=bnew ;
*mx=xnew ;
*my=ynew ;
}
void initrand()
/*初始化随机数函数*/
{
srand((unsigned)time(0));
}
int randto(int s,int b)
/*产⽣s-b的随机整数*/
{
if(s>b)
{
s+=b ;
b=s-b ;
s-=b ;
}
if(s==b)b++;
return rand()%(b+1-s)+s ;
}
void setregscolor(int colornum,int read0,int green0,int blue0) {
union REGS r ;
int num[]=
{
0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63
}
;
outportb(0x3c8,num[colornum%16]);
outportb(0x3c9,read0);
outportb(0x3c9,green0);
outportb(0x3c9,blue0);
}
void initcolor()
{
int i ;
for(i=1;i<15;i++)
setregscolor(i,0,i*4+3,0);
setregscolor(15,10,63,40);
}
void initp()
{
int i ;
for(i=0;i
{
p[i][0]=randto(0,2*NY-1);
p[i][1]=randto(1,3);
p[i][2]=randto(0,2);
}
}
void initpx()
{
int i ;
for(i=0;i
px[i]=randto(0,3);
}
void updtp()
{
int i,j ;
for(i=0;i
{
for(j=0;j
{
p[i][2]=(p[i][2]+1)%speed ;
if(p[i][2]==0)
p[i][0]=(NY*2+p[i][0]-1)%(NY*2); }
}
}
void initgtext()
{
int i,j ;
for(i=0;i
for(j=0;j
{
gtext[i][j][0]=j
gtext[i][j][1]=randto(1,14);
}
}
void updtgtext()
{
int i,j ;
for(i=0;i
{
if(i!=privatex)
{
gtext[i][(p[i][0]+NY)%(NY*2)][0]=randto(48,49);
gtext[i][(p[i][0]+NY)%(NY*2)][1]=randto(1,14);
if(randto(1,2*NX)==1)
for(j=0;j
gtext[i][(p[i][0]+NY+j)%(NY*2)][0]=' ' ;
}
}
}
void putword(int i,int j)
{
char s[2];
/*setfillstyle(1,0);
bar(i*640/NX,j*480/NY,i*640/NX+640/NX-1,j*480/NY+480/NY-1);
setcolor(0);
sprintf(s,"%c",gtext[i][(p[i][0]+p[i][1]+j)%(NY*2)][0]);
outtextxy(i*640/NX+210/NX,(j*3+(p[i][2]+2)%3-3)*160/NY,s);*/
setcolor(gtext[i][(p[i][0]+j)%(NY*2)][1]);
sprintf(s,"%c",gtext[i][(p[i][0]+j)%(NY*2)][0]);
outtextxy(i*640/NX+px[i]*120/NX,(j*speed+p[i][2]-speed)*(480/speed)/NY,s); }
void putgtext()
{
int i,j ;
for(i=0;i
{
bar(i*640/NX+px[i]*120/NX-2,0,i*640/NX+px[i]*120/NX+120/NX+2,480);
for(j=0;j
putword(i,j);
}
}
void inputtext(char t[],int n,int i)
{
int j ;
if(n>NY-2)return ;
for(j=0;j
gtext[i][(NY*2-n+p[i][0]+j)%(NY*2)][0]=t[j],gtext[i][(NY*2-n+p[i][0]+j)%(NY*2)][1]=15 ; }
void main()
{
int gd=DETECT,gm,i,x=0,y=0,b=0 ;
char t[][15]=
厉害的编程代码{
{
84,67,32,73,83,32,67,79,79,76
}
,
{
67,79,79,76,32,76,89,78,78
}
,
{
78,66,85,32,76,89,78,78,32,76,69,69
}
,
{
87,69,32,32,67,65,78,32,68,79
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论