C语言如何实现弹跳小球动画
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要介绍了C语言如何实现弹跳小球动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何实现弹跳小球动画文章都会有所收获,下面我们一起来看看吧。一、项目描述和
千家信息网最后更新 2024年11月20日C语言如何实现弹跳小球动画
这篇文章主要介绍了C语言如何实现弹跳小球动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何实现弹跳小球动画文章都会有所收获,下面我们一起来看看吧。
一、项目描述和最终成果展示
项目描述: 一个球来回的跳动
效果图如下:
二、实现一个移动的球
代码如下:
#include#include int main(void){ int x; initgraph(640,480); for(x=100;x<540;x=x+20) { setcolor(YELLOW);//绘制黄线,绿色填充的圆 setfillcolor(GREEN); fillcircle(x,100,20); Sleep(320);//延时 /*setcolor(BLACK);//绘制黑线,黑色填充的圆 //目的清除以前的圆,达到小球动态移动的效果 //等价于清屏函数 setfillcolor(BLACK); fillcircle(x,100,20);*/ cleardevice(); } closegraph(); return 0;}
三、弹跳一个小球
代码如下:
#include#include #define High 480 //游戏画布尺寸#define Width 640int main(void){ float ball_x,ball_y;//小球的坐标 float ball_vx,ball_vy;//小球的速度 float radius;//小球的半径 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#include #define High 480 //游戏画布尺寸#define Width 640int main(void){ float ball_x,ball_y;//小球的坐标 float ball_vx,ball_vy;//小球的速度 float radius;//小球的半径 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#include #define High 480 //游戏画布尺寸#define Width 640#define BallNum 5 //小球的个数int main(void){ float ball_x[BallNum],ball_y[BallNum];//小球的坐标 float ball_vx[BallNum],ball_vy[BallNum];//小球的速度 float radius=20;//小球的半径 int i; for(i=0;i =Width-radius) ) ball_vx[i]=-ball_vx[i]; if( (ball_y[i]<=radius) || (ball_y[i]>=High-radius) ) ball_vy[i]=-ball_vy[i]; } //绘制黄线,绿色填充的圆 setcolor(YELLOW); setfillcolor(GREEN); for(i=0;i 效果图如下:
六、多个球碰撞(升级版)
增加了球与球之间的碰撞
代码如下:
#include#include #include #define High 480 //游戏画面大小#define Width 640#define BallNum 15//小球的个数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 Width-radius) ball_x[i]=Width-radius; if(ball_y[i]>High-radius) ball_y[i]=High-radius; } //判断是否和墙壁碰撞 for(i=0;i =Width-radius) ) ball_vx[i]=-ball_vx[i]; if( (ball_y[i]<=radius) || (ball_y[i]>=High-radius) ) ball_vy[i]=-ball_vy[i]; } float minDistances2[BallNum][2]; //记录某个小球和与它最近小球的距离,以及这个小球的坐标 for(i=0;i 效果图如下:
关于"C语言如何实现弹跳小球动画"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"C语言如何实现弹跳小球动画"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
小球
坐标
黑色
碰撞
效果
速度
代码
函数
效果图
绿色
动画
语言
不用
半径
好处
更新
之间
尺寸
画布
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
串口服务器rs485
中企网络安全检查
数据库可以存放数字
今日头条服务器切换手机网络
石家庄监控软件开发
icdd数据库
热血江湖至尊符服务器通用吗
软件开发直播课程
数据库指标体系设计及完善
中秋节网络安全手抄报图片
腾讯服务器香港
机架式服务器和交换机
c语言数据库接口
香肠派对奶茶服务器3.25版本
推荐的软件开发
西安IBM服务器代理
jepaas数据库同步
求生之路一进服务器就断开了
店数科技互联网
ajax请求追加数据库
互联网加工科技创新
网络技术安全保障措施
x系列服务器IMM故障代码
服务器没网络连接
网络安全注意事项和陷阱
企业培训软件开发费用
xml 做数据库实例
工信部车联网网络安全和数据安全
江西戴尔服务器系列
电梯监控服务器