这篇文章主要为大家详细介绍了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实现自由落体小球


猜你喜欢
- C++ 数据结构超详细讲解顺序表 2023-03-25
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- ubuntu下C/C++获取剩余内存 2023-09-18
- Easyx实现扫雷游戏 2023-02-06
- C语言qsort()函数的使用方法详解 2023-04-26
- C语言详解float类型在内存中的存储方式 2023-03-27
- Qt计时器使用方法详解 2023-05-30
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11