有人可以解释如何试验引力的价值吗?

时间:2015-01-26 02:01:31

标签: java libgdx physics game-physics orthographic

我正在关注如何在LibGdx框架中播放飞扬的鸟类克隆的指南。 - http://www.kilobolt.com/day-5-the-flight-of-the-dead---adding-the-bird.html

我目前正处于作者讨论添加实际鸟类和鸟类背后的物理学的部分。他用这些实例变量

封装了鸟的状态
private Vector2 position;
private Vector2 velocity;
private Vector2 acceleration;
private float rotation; // For handling bird rotation
private int width;
private int height;

并初始化构造函数

中的这些实例变量或字段
 public Bird(float x, float y, int width, int height) {
    this.width = width;
    this.height = height;
    position = new Vector2(x, y);
    velocity = new Vector2(0, 0);
    acceleration = new Vector2(0, 460);
}

作者解释说,y方向的460恒定加速度是由于重力引起的,即地球的引力导致物体每秒加速9.8m / s或9.8m / s ^ 2。

当被问及他如何确定460时,作者回应说:“加速是通过实验确定的。它的价值不会改变。”

我的问题是你将如何尝试这个价值?你会用什么信息。我认为真正理解这个实验背后的过程对于那些试图将重力纳入其应用程序的开发人员来说非常有价值。 我认为这460就游戏单元而言,作者詹姆斯早先定义为cam.setToOrtho(true, 136, 204);

2 个答案:

答案 0 :(得分:2)

通过“实验确定”,作者只是意味着尝试各种值,直到找到有用的东西。这里没有数学或复杂的魔法。要试验它,只需更改它并再次运行程序。如果你喜欢你所看到的,请使用它。如果没有,请相应调整。

9.8 m /s²的数量只是地球引力如何运作的参考。它与实际游戏的实现无关。

答案 1 :(得分:0)

您可以定义像素代表的实际尺寸。然后使用运动学公式来计算将某个物体带到窥视的时间并再次回落。然后测量你的游戏对象的时间,并试着调整你的重力,就像你计算的跳跃大约相同的时间一样。