使用C语言怎么实现一个弹跳的小球?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联服务项目包括城关网站建设、城关网站制作、城关网页制作以及城关网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,城关网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到城关省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
#include "graphics.h"
#include "math.h"
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x011b
int x,y,x1,y1,key,t1,t2,keyx,keylong,keymove,over=0,i,tt=0,fast;
int ballx[9]={53,103,263,120,236,390,410,450,600};
int bally[9]={158,239,120,113,30,313,120,263,231},ballz[9]={0};
float ls;
win()
{float lx,ly,ll;
for(i=0;i<9;i++)
{
if(ballz[i]==1)/*假如球体已经消失就不判定*/
continue;
lx=(float)(ballx[i]-x);
ly=(float)bally[i]-y;
ll=lx*lx+ly*ly;
ls=sqrt(ll);
if((int)ls<17)/*判定两球是否碰到*/
{tt++;/*记录消失几个球*/
fast-=50;/*速度加快*/
if(i%2==0)/*移动加快*/
keymove+=5;
else
{
setcolor(0);
rectangle(keyx,460,keyx+keylong,470);
keylong-=10;/*长条变短*/
setcolor(YELLOW);
rectangle(keyx,460,keyx+keylong,470);
}
ballz[i]=1;
setcolor(0);
circle(ballx[i],bally[i],10);
if(y480)/*失败*/
{
cleardevice();
over=1;
setcolor(RED);
settextstyle(0,0,4);
setusercharsize(3,1,3,1);
outtextxy(200,200,"GAME OVER");
break;
}
else if(x==11&&y==11)/*判定碰到东西*/
{t1=1;t2=1;}
else if(x==629&&y==11)
{t1=-1;t2=1;}
else if(x==11)
{
if(yy)
{t1=-1;t2=-1;}
else
{t1=-1;t2=1;}
}
else if(y==449)
{
if(x>=keyx&&x<=keyx+keylong)
{
if(x<(keyx+keylong/4))
{t1=-1;t2=-1;}
else if(x>=(keyx+keylong/4)&&x<(keyx+keylong/2))
{t1=-1;t2=-2;}
else if(x>=(keyx+keylong/2)&&x<(keyx+keylong/4*3))
{t1=1;t2=-2;}
else
{t1=1;t2=-1;}
}
}
}
if(over)
break;
key=bioskey(0);
setcolor(0);
rectangle(keyx,460,keyx+keylong,470);
if(key==ESC)
{cleardevice();break;}
else if(key==LEFT)
keyx-=keymove;
else if(key==RIGHT)
keyx+=keymove;
}
}
main()
{int gd=DETECT,gr;
initgraph(&gd,&gr,"c:\\tc");
fungo();
getch();
sleep(1);
closegraph();
} 看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。