如何使用graphics.h函数用c实现弹跳球?
我正在尝试编写一个简单的弹跳球代码,下面的代码不会弹跳球,它只是在使用输入按钮时使其移动,当程序运行时我该怎么做才能使球自行弹跳跑步?
#include<alloc.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
void main()
{
int d=DETECT,m;
initgraph(&d,&m,"H:\\tc\\bgi");
int l=getmaxx()/2,t=0;
int x=1,y=1;
int xstep=1,ystep=1;
while(!kbhit())
{
cleardevice();
circle(l,t,18);
delay(5);
circle(l,t,18);
if(l>=getmaxx()||l<=0)
{
x*=-1;
xstep=x*(random(4)+1);
ystep=y*(random(3)+1);
if (l<=0)
t=0;
else
l=getmaxx();
}
if(t>=getmaxy()||t<=0)
{
y*=-1;
ystep=(y*random(4)+1);
xstep=(x*random(3)+1);
if(t<=0)
t=0;
else
t=getmaxy();
}
l+=x+xstep;
t+=y+ystep ;
getch();
}
closegraph();
}
i'm trying to do a simple bouncing ball code ,my code below doesn't bounce the ball,it just makes it move when the enter button is used, what can I do to make the ball bounce by it self when the program is run?
#include<alloc.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>
void main()
{
int d=DETECT,m;
initgraph(&d,&m,"H:\\tc\\bgi");
int l=getmaxx()/2,t=0;
int x=1,y=1;
int xstep=1,ystep=1;
while(!kbhit())
{
cleardevice();
circle(l,t,18);
delay(5);
circle(l,t,18);
if(l>=getmaxx()||l<=0)
{
x*=-1;
xstep=x*(random(4)+1);
ystep=y*(random(3)+1);
if (l<=0)
t=0;
else
l=getmaxx();
}
if(t>=getmaxy()||t<=0)
{
y*=-1;
ystep=(y*random(4)+1);
xstep=(x*random(3)+1);
if(t<=0)
t=0;
else
t=getmaxy();
}
l+=x+xstep;
t+=y+ystep ;
getch();
}
closegraph();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我会建议您尽早做出一些改变。
while
循环中使用getch()
。delay()
函数。椭圆
而不是圆形
。I will recommend you to make a few changes at the earliest.
getch()
in thewhile
loop.delay()
function.ellipse
instead ofcircle
.