这篇文章主要为大家详细介绍了EasyX实现自由落体小球,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了EasyX实现自由落体小球的具体代码,供大家参考,具体内容如下
1. 要实现自由落体,首先得实现匀速下落
#include<graphics.h> //图形库头文件
#include<conio.h>
#include<cstdio>
#define WIDTH 400 //窗口宽度
#define HEIGHT 600 //窗口高度
int main()
{
//定义并初始化小球坐标
float ballX = WIDTH / 2;
float ballY = 10;
//创建窗口
initgraph(WIDTH, HEIGHT);
while (1)
{
ballY++; //改变小球的y坐标
cleardevice(); //清屏
fillcircle(ballX, ballY, 10); //绘制小球
Sleep(10); //暂停10毫秒
}
_getch(); //等待按键输入(卡屏作用)
closegraph(); //关闭窗口
return 0;
}
2.然后在匀速的基础上实现加速运动
(只需要实现y方向的增量不断改变即可)
#include<graphics.h>
#include<conio.h>
#include<cstdio>
#define WIDTH 400 //窗口宽度
#define HEIGHT 600 //窗口高度
int main()
{
//定义并初始化小球坐标
float ballX = WIDTH / 2;
float ballY = 10;
//定义小球初始下落速度
float vy = 0.0;
//定义小球下落加速度
float g = 0.5; //y方向的增量
//创建窗口
initgraph(WIDTH, HEIGHT);
while (1)
{
//实现加速下落
//改变下落速度
vy = vy + g;
//改变Y方向坐标
ballY = ballY + vy;
//做反弹处理
if (ballY >= 590)
vy = -0.95*vy; //改变vy的方向,加一点阻力
//做下边界处理
if (ballY > 590)
ballY = 590;
cleardevice(); //清屏
fillcircle(ballX, ballY, 10); //绘制小球
Sleep(100); //暂停100毫秒
}
_getch();
closegraph();
return 0;
}
要点一: 通过增量改变每一次 y 方向上值改变的不同
要点二: 下边界处理, 当 y >窗口高度 - 小球半径 时需要将 y 坐标置为 窗口高度 - 小球半径
要点三: vy的反向
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:EasyX实现自由落体小球


基础教程推荐
猜你喜欢
- 使用VS2022开发在线远程编译部署的C++程序(图文详解) 2023-01-15
- C语言预编译#define(预处理) 2023-04-03
- C语言文件操作与相关函数介绍 2023-06-13
- 使用C/C++读写.mat文件的方法详解 2023-03-05
- C语言实现简易停车场管理系统 2023-03-13
- 如何告诉 MinGW 链接器不要导出所有符号? 2022-10-07
- C++高级数据结构之并查集 2023-04-20
- C++类和对象到底是什么 2022-11-12
- 漫画讲解C语言中最近公共祖先的三种类型 2023-01-01
- C/C++ Qt StatusBar底部状态栏应用教程 2023-01-10