如何使用graphics.h函数用c实现弹跳球?

发布于 2024-12-10 07:29:55 字数 769 浏览 0 评论 0原文

我正在尝试编写一个简单的弹跳球代码,下面的代码不会弹跳球,它只是在使用输入按钮时使其移动,当程序运行时我该怎么做才能使球自行弹跳跑步?

#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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

∞梦里开花 2024-12-17 07:29:55

我会建议您尽早做出一些改变。

  • 不要在 while 循环中使用 getch()
  • 尝试增加和减少参数值
    delay() 函数。
  • 尝试使用椭圆而不是圆形

I will recommend you to make a few changes at the earliest.

  • Don't use getch() in the while loop.
  • Try increasing and decreasing the values of the parameters of the
    delay() function.
  • Try ellipse instead of circle.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文