有人可以解释如何试验重力值吗?

Can someone explain how to experiment with the value of gravity?

我正在按照有关如何在 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 时,作者回答,"Acceleration was experimentally determined. Its value does not change."

我的问题是,您将如何试验这个值?你会使用什么信息。我认为真正理解这个实验背后的过程对于试图将重力融入他们的应用程序的开发人员来说是有价值的。 我认为这个 460 应该是游戏单位,作者 james 之前定义为 cam.setToOrtho(true, 136, 204);

"experimentally determined," 作者的意思只是尝试各种值,直到找到有用的东西。这里没有数学或复杂的魔法。要试验它,只需更改它并再次 运行 程序。如果你喜欢你所看到的,就使用它。如果不是,请相应调整。

9.8 m/s² 的数字只是对地球引力作用方式的参考。与实际游戏实现无关

您可以定义您的像素代表的真实世界大小。然后使用运动学公式来计算某个物体去偷看并再次回落需要多长时间。然后测量你的游戏对象的时间,并尝试调整你的重力,跳跃所花费的时间与你计算的时间大致相同。