C语言如何实现弹跳小球动画
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,这篇文章主要介绍了C语言如何实现弹跳小球动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何实现弹跳小球动画文章都会有所收获,下面我们一起来看看吧。一、项目描述和
千家信息网最后更新 2025年02月21日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安全错误
数据库的锁怎样保障安全
暴雪客服支持服务器不能选
asp列表数据库分页代码
数据库设计系统前台软件
境外轻量应用服务器
网络安全产品的配置与使用
数据库的存储结构设计
应用在云服务器安全吗
网络安全技术专业就业前景
(移动终端软件开发)
中海洋网络安全
凯恩之角关于服务器问题的解释
软件开发要数学英语好吗
建立的数据库不见了怎么找回
网络安全的主动威协
冒险小分队服务器选哪个
网络服务器云服务器是什么
佛山数字软件开发厂家直销
广州棋牌软件开发公司联系方式
河南六道网络技术有限公司
网络安全手抄报. 八年级
免费服务器怎么开
数据库的存储结构设计
国泰安数据库 高新技术企业
中间建数据库有哪些
信誉好的分布式数据库技术
河南那个服务器做核酸
智能机器人软件开发
黄山服务器机箱企业
临沂网络安全咨询
建筑服务器大全