本文主要是介绍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实现自由落体小球的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!