这篇文章主要为大家详细介绍了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语言 structural body结构体详解用法 2022-12-06
- C利用语言实现数据结构之队列 2022-11-22
- C++详细实现完整图书管理功能 2023-04-04
- C语言基础全局变量与局部变量教程详解 2022-12-31
- C/C++编程中const的使用详解 2023-03-26
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- 如何C++使用模板特化功能 2023-03-05
- C++中的atoi 函数简介 2023-01-05
- 一文带你了解C++中的字符替换方法 2023-07-20
- 详解c# Emit技术 2023-03-25