C语言实现弹跳小球分享!

这是一个简单的c语言源代码,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(y<bally[i])   if(x<ballx[i])   {t1=-1;t2=-1;}   else   {t1=1;t2=-1;}   else   if(x<ballx[i])   {t1=-1;t2=1;}   else   {t1=1;t2=1;}   }   }  }   fungo()  { x=100,y=50,keyx=200,keylong=100,keymove=15,fast=5000;   for(i=0;i<9;i++)   {   setcolor(i+1);   circle(ballx[i],bally[i],10);   }   sleep(1);   t1=t2=1;   while(1)   {   while(!kbhit())   {   setcolor(YELLOW);   rectangle(keyx,460,keyx+keylong,470);   x1=x;   y1=y;   x+=t1;   y+=t2;   setcolor(4);   circle(x,y,6);   delay(fast);   setcolor(0);   circle(x,y,6);   win();   if(tt==9)/*胜利*/   {   cleardevice();   over=1;   setcolor(RED);   settextstyle(0,0,4);   setusercharsize(3,1,3,1);   outtextxy(200,200," YOU WIN! ");   break;   }   if(y>480)/*失败*/   {   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(y<y1)   {t1=1;t2=-1;}   else   {t1=1;t2=1;}   }   else if(y==11)   {   if(x<x1)   {t1=-1;t2=1;}   else   {t1=1;t2=1;}   }   else if(x==629)   {   if(y1>y)   {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();  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解C语言实现弹跳小球分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/484252.html

(0)
上一篇 2020年11月10日
下一篇 2020年11月10日

精彩推荐