注册 登录
编程论坛 C图形专区

[求助]C图形函数-->unicorn转移

hua9123 发布于 2006-10-13 15:19, 737 次点击

想让2 个小求从两端向中间滚动,碰撞时再分开,并循环几次

这样的函数应该怎么样写


还有 imagesize(left,top,right,bottom);
getimage();
putimage();
函数的具体意思是什么

有知道这个程序的请写下

谢谢了

2 回复
#2
一笔苍穹2006-10-14 12:33
那几个函数本版的置顶帖子里有相关资料。
至于你说的那个程序,我给你个思路:
两个球在水平方向上滚动,其实变化的就是球的X轴,可以用类似下面的代码实现球从左往右滚:
for (x1 = 0; x1 < 320; x1++)
{
circle(x1, 240, 50, 15); /*在坐标(x1, 240)处以50为半径,用15号颜色画圆*/
}
同样,只要将for循环小改一下就能实现第二个向左滚的球:
for (x2 = 640; x2 > 320; x2--)
{
circle(x2, 240, 50, 15); /*在坐标(x2, 240)处以50为半径,用15号颜色画圆*/
}
由于循环中的x变量会不断的变化,所以球就会向中间“滚动”,你还要在每次两球做一步滚动之前擦除原来的画面,要不然你会看到球拖着个“尾巴”。
至于球碰到一起要又要分开往两边滚,你可以自己照着上面的代码改。
祝你成功,做好了别忘了把代码帖上来哦。
#3
hua91232006-10-16 07:51

我现在把代码写下
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
main()
{int gd=DETECT,gm,i,k,l;
void *buf,*buf1;
initgraph(&gd,&gm,"");
circle(51,400,50);
setfillstyle(1,5);
floodfill(51,400,15);
setbkcolor(6);
k=imagesize(0,350,102,450);
buf=malloc(k);
getimage(0,350,102,450,buf);
circle(549,400,50);
setfillstyle(1,5);
floodfill(549,400,15);
l=imagesize(498,350,600,450);
buf1=malloc(l);
getimage(498,350,600,450,buf1);
for(i=0;i<199;i++)
{putimage(i,350,buf,COPY_PUT);
putimage(498-i,350,buf1,COPY_PUT);
}
/* getch(); */
for(i=0;i<199;i++)
{putimage(199-i,350,buf,COPY_PUT);
putimage(300+i,350,buf1,COPY_PUT);}
}
就这些   呵呵    谢谢了

1