哪错了?
#include "Conio.h"#include "graphics.h"
#include "dos.h"
#include "stdlib.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0;
registerbgidriver(EGAVGA_driver);
initgraph(&gd, &gm, "");
}
int main(void)
{
int i,j;
initgr(); /* BGI初始化 */
for(i=1;i<=10;i++)
{
setbkcolor(0);
j=random(10);
setcolor(j);
circle(199,299,10*i);
delay(1000);
clrscr();
}
getch();
closegr();
return 0;
} 你也不说说你的错误表现是什么?!!![tk09]
是编译不过呢?还是运行结果不是你想要的呢?
按我的理解,你可能有以下几点不妥~
1、random用前要用 randomize()初始化,当然,这也许是你有意为之~
2、 clrscr();我想这里应该用cleardevice();比较合适
3、这个delay()不知基于什么原理,在我机器上要用两个delay(0xFFFF)才能看到些许效果。
[[it] 本帖最后由 sxn0508 于 2008-5-5 16:47 编辑 [/it]] [code]
/* WIN-TC BGI 图形编程模板 */
#include "Conio.h"
#include "stdlib.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver); /*
注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd, &gm, "");
}
int main(void)
{
int i = 0, j;
/* BGI初始化*/
initgr();
/*init random*/
randomize();
/*set back color*/
setbkcolor(BLACK);
/*main while*/
while (!kbhit())
{
/*paint*/
j = random(15);
setcolor(j + 1);
circle(320, 240, 10 *i);
/*delay*/
delay(0x5000);
/*clear*/
setcolor(BLACK);
circle(320, 240, 10 *i);
/*limit*/
if (i++ > 15)
{
i = 0;
}
}
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
[/code]
回复 3# 的帖子
en 你分析的很对。你的挺漂亮的。
每次是不是都画两个 圆? [quote][bo]以下是引用 [un]jxt598598[/un] 在 2008-5-5 21:17 的发言:[/bo]
en 你分析的很对。
你的挺漂亮的。
每次是不是都画两个 圆? [/quote]
每次先画一个彩色的圆,延时后再画一个一样的黑色的圆,相当于把彩色的擦掉了。
页:
[1]
