| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4318 人关注过本帖
标题:一个非常棒的屏保源代码
只看楼主 加入收藏
深蓝幻想
Rank: 1
等 级:新手上路
帖 子:104
专家分:0
注 册:2004-8-6
收藏
得分:0 

支持天使!~!~!~


!~!~!深蓝幻想,幻想深蓝!~!~! Qq:1235531
2004-08-12 18:44
huangcheng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-7-14
收藏
得分:0 
时钟屏保
你这么牛,能不能把时钟也加进屏保里面啊,做一个时钟屏保,到时我就买定了
2005-07-14 11:22
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

#include <graphics.h> #include <dos.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <time.h> #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 ; regs.x.ax=3 ; /* do*/ { int86(51,&regs,&regs); xnew=regs.x.cx ; ynew=regs.x.dx ; bnew=regs.x.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<NX;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<NX;i++) px[i]=randto(0,3); } void updtp() { int i,j ; for(i=0;i<NX;i++) { for(j=0;j<p[i][1];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<NX;i++) for(j=0;j<NY*2;j++) { gtext[i][j][0]=j<NY?' ':randto(48,49); gtext[i][j][1]=randto(1,14); } } void updtgtext() { int i,j ; for(i=0;i<NX;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<NY/6;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<NX;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<NY;j++) putword(i,j); } } void inputtext(char t[],int n,int i) { int j ; if(n>NY-2)return ; for(j=0;j<n;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 } } ; int tn[]= { 10,9,12,10 } ; int min=0,Time=0; struct time Stime,Ntime; printf("Time:(min)"); scanf("%d",&Time); gettime(&Stime); initgraph(&gd,&gm,""); readm(&x,&y,&b); initrand(); initp(); initpx(); setfillstyle(1,1); i=0 ; p[0][1]=2 ; initcolor(); { initgtext(); while(/*!kbhit()*/1) { int tx=0,ty=0,tb=0 ; readm(&tx,&ty,&tb); //if(tx!=x||ty!=y||tb!=b)break ; if(i==420) { int tx ; tx=randto(0,3); privatex=randto(0,NX-1); i=0 ; inputtext(t[tx],tn[tx],privatex); } if(i==NY)privatex=-1 ; i++; putgtext(); updtp(); updtgtext(); gettime(&Ntime); if(Ntime.ti_sec!=Stime.ti_sec) { min++; Stime.ti_sec=Ntime.ti_sec; if(min/60>=Time) { printf("Stop!"); delay(1000); break; } } } } closegraph(); } 咳,挺好的一个程序,让我给改的!!!(有时间了!)

[此贴子已经被作者于2005-7-15 8:56:40编辑过]


差点把你忘了...
2005-07-14 14:31
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 
恩,代码不错,我买了。。

如果能做成TSR驻留的就好了。。

我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-07-14 15:08
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
说的是,不会,学习!

差点把你忘了...
2005-07-14 20:06
huangcheng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-7-14
收藏
得分:0 
时钟屏保
但是你改编的根本不是时钟屏保啊,你自己运行一下看看,那里有什么时钟啊,哎,希望你尽快检查出错误,快快修正吧,我等着看你的好戏呢
2005-07-15 08:44
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
哦,少了个一 while(/*!kbhit()*/1)

呵呵。。。。你自己也看看呀怎么了?

差点把你忘了...
2005-07-15 08:59
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
几十年前的贴子还能卖钱

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-07-15 10:11
tary
Rank: 1
等 级:新手上路
帖 子:780
专家分:0
注 册:2004-10-5
收藏
得分:0 
哈哈,,够黑了。。

┌→¨ ≮我可以学会对你很冷落≯¨←┐ │  <却学不╓══╦══╖会将爱> │ │¨←┐ ╭╩╮哭‖哭╭╩╮ ┌→¨│ └──┘收 ╲╱ ◇‖◇ ╲╱回└──┘
2005-07-15 10:50
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
以下是引用天使预备役在2005-7-15 8:59:01的发言: 哦,少了个一 while(/*!kbhit()*/1) 呵呵。。。。你自己也看看呀怎么了?
while(!kbhit())只是用来捕捉键盘输入的

土冒
2005-07-15 11:21
快速回复:一个非常棒的屏保源代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016883 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved