Board logo

标题: TC写的小动画效果 [打印本页]

作者: 523066680     时间: 2009-9-4 00:43    标题: TC写的小动画效果
上传的文件里有3个效果:变幻Delta带影子的 变幻四面体 不同速度随机游动的点

我平常放dos启动盘里,进入dos的时候拿来做屏保啦哈哈。

#include <Conio.h>
#include <graphics.h>
#include <stdlib.h>
#define closegr closegraph
#define NDOT 4


typedef struct
{
int a,b,x,y;
} DotInf;


void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0;
registerbgidriver(EGAVGA_driver);
initgraph(&gd, &gm, "");
}

void delta(DotInf dot,int c)
{
int i,j;
setcolor(c);
for (i=0;i<NDOT;i++)
for (j=i+1;j<NDOT;j++) line(dot.x,dot.y,dot.x,dot.y);
}

int main(void)
{
int i,j,whi=0;
DotInf snk,everdot;

initgr(); /* BGI初始化 */

for (i=0;i<NDOT;i++) {
snk.a=snk.b=snk.x=snk.y=200;
}
delta(snk,2);
randomize();
while (!kbhit())
{
if (whi<4) whi++; else whi=0;
for (i=0;i<600;i++) delay(10);

delta(everdot,0);
delta(snk,2);

for (i=0;i<NDOT;i++){
if ((snk.x==snk.a)&&(snk.y==snk.b)){
snk.a=rand()%600+1;
snk.b=rand()%400+20;
}
}
for (i=0;i<NDOT;i++){
everdot.x=snk.x;
everdot.y=snk.y;
if (whi>i) continue;
if (snk.x>snk.a)
snk.x--;
else if (snk.x<snk.a)
snk.x++;
else
{
if (snk.y>snk.b)
snk.y--;
else if (snk.y<snk.b)
snk.y++;
}
}


}

getch();
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}



Last edited by 523066680 on 2009-9-7 at 01:25
]
附件 1: TCGRAPH.rar (2009-9-4 00:46, 59.37 KiB, 下载附件所需积分 1点 ,下载次数: 132)

作者: 523066680     时间: 2009-9-7 01:25
………………

作者: justzero     时间: 2009-9-11 08:05    标题: 12
不错!

作者: cike09     时间: 2009-9-12 05:35
??????????????????

作者: 523066680     时间: 2009-9-12 05:41
楼上有怀疑就说,发问号很容易被当作恶意灌水并扣分的。

作者: xugaohui     时间: 2009-9-13 01:02
不能在移动鼠标时退出,不能驻留内存。

作者: 523066680     时间: 2009-9-14 06:19
学没多久,不会,多多指教啊~
什么是驻留内存

作者: xiaoguizi007     时间: 2010-4-20 16:22
这么好,看看

作者: erontec     时间: 2010-4-20 22:35
这么好,看看

作者: demonstone     时间: 2010-4-26 21:05    标题: 不错
收下了!

作者: messen     时间: 2010-5-5 18:21
看看的哦 可惜了 不怎么会用

作者: atak     时间: 2010-10-25 11:47
做的不错

作者: 1beyondworld     时间: 2010-11-1 20:52
不错的方法

作者: wds59211314     时间: 2010-12-15 10:30
下载来看看,还没看过呢…

作者: 1051093860     时间: 2015-6-18 21:21
不错!