目录
一、项目描述和最终成果展示
二、实现一个移动的球
三、弹跳一个小球
四、弹跳一个小球(改进版)
五、多个球碰撞
六、多个球碰撞(升级版)
本文实例为大家分享了C语言实现弹跳小球动画的具体代码,供大家参考,具体内容如下
一、项目描述和最终成果展示
项目描述: 一个球来回的跳动效果图如下:
二、实现一个移动的球
代码如下:#include
三、弹跳一个小球
代码如下:#include
initgraph(Width,High);ball_x=Width/2;ball_y=High/2;ball_vx=1;ball_vy=1;radius=20;while(1){setcolor(BLACK);//绘制黑色,黑色填充的圆//不用清屏函数的好处:不会闪屏setfillcolor(BLACK);fillcircle(ball_x,ball_y,radius);
//更新圆的坐标ball_x=ball_x+ball_vx;ball_y=ball_y+ball_vy;
if( (ball_x<=radius) || (ball_x>=Width-radius) ) ball_vx=-ball_vx;if( (ball_y<=radius) || (ball_y>=High-radius) ) ball_vy=-ball_vy;
//绘制黄线,绿色填充的圆setcolor(YELLOW);setfillcolor(GREEN);fillcircle(ball_x,ball_y,radius);Sleep(3);}closegraph();return 0;}效果图如下:
四、弹跳一个小球(改进版)
代码如下:#include
initgraph(Width,High);ball_x=Width/2;ball_y=High/2;ball_vx=1;ball_vy=1;radius=20;BeginBatchDraw();while(1){setcolor(BLACK);//绘制黑色,黑色填充的圆//不用清屏函数的好处:不会闪屏setfillcolor(BLACK);fillcircle(ball_x,ball_y,radius);
//更新圆的坐标ball_x=ball_x+ball_vx;ball_y=ball_y+ball_vy;
if( (ball_x<=radius) || (ball_x>=Width-radius) ) ball_vx=-ball_vx;if( (ball_y<=radius) || (ball_y>=High-radius) ) ball_vy=-ball_vy;
//绘制黄线,绿色填充的圆setcolor(YELLOW);setfillcolor(GREEN);fillcircle(ball_x,ball_y,radius);
FlushBatchDraw();Sleep(3);}EndBatchDraw();closegraph();return 0;}效果图如下:
五、多个球碰撞
代码如下:#include
for(i=0;i initgraph(Width,High);BeginBatchDraw();while(1){setcolor(BLACK);//绘制黑色,黑色填充的圆//不用清屏函数的好处:不会闪屏setfillcolor(BLACK);for(i=0;i //更新圆的坐标for(i=0;i //判断是否和墙壁碰撞for(i=0;i //绘制黄线,绿色填充的圆setcolor(YELLOW);setfillcolor(GREEN);for(i=0;i 增加了球与球之间的碰撞代码如下: int main(void){float ball_x[BallNum],ball_y[BallNum];//小球的坐标float ball_vx[BallNum],ball_vy[BallNum];//小球的速度float radius;//小球的半径int i,j;radius=20; for(i=0;i while(1){setcolor(BLACK);//绘制黑色,黑色填充的圆//不用清屏函数的好处:不会闪屏setfillcolor(BLACK);for(i=0;i //更新小球的坐标for(i=0;i //把超出边界的小球拉回来if(ball_x[i] //判断是否和墙壁碰撞for(i=0;i float minDistances2[BallNum][2];//记录某个小球和与它最近小球的距离,以及这个小球的坐标 for(i=0;i //判断小球之间是否碰撞for(i=0;i minDistances2[j][0]=9999999;//避免交换两次速度,又回去了minDistances2[j][1]=-1;}}//绘制黄线,绿色填充的圆setcolor(YELLOW);setfillcolor(GREEN);for(i=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。 您可能感兴趣的文章:C语言用函数实现反弹球消砖块C语言实现弹跳小球项目C语言实现简单反弹球消砖块游戏C语言实现简单弹跳小球C语言实现反弹球消砖块游戏C语言实现反弹球游戏C语言实现弹跳小球C语言实现简单弹跳球游戏C语言实现反弹球小游戏C语言实现简单弹球游戏六、多个球碰撞(升级版)
#include
