Может кто-нибудь объяснить, как поэкспериментировать со значением гравитации?

Я следую руководству о том, как играть в клон неповоротливой птицы в рамках 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);
}

Автор объяснил, что постоянное ускорение 460 в направлении y обусловлено силой тяжести, то есть сила тяжести Земли заставляет объект ускоряться на 9,8 м / с каждую секунду или 9,8 м / с ^2.

Когда его спросили, как он определил 460, автор ответил: "Ускорение было определено экспериментально. Его значение не меняется".

Мой вопрос: как бы вы поэкспериментировали с этим значением? Какую информацию вы бы использовали. Я думаю, что действительно понимание процесса, стоящего за этим экспериментом, было бы полезно для разработчиков, которые пытаются включить гравитацию в свои приложения. Я думаю, что это 460 будет с точки зрения игровых единиц, где автор, Джеймс, ранее определен как cam.setToOrtho(true, 136, 204);

2 ответа

Решение

Под "экспериментально определенным" автором подразумевается только попытка различных значений, пока не будет найдено что-то, что сработало Здесь нет математики или сложной магии. Чтобы поэкспериментировать с ним, просто измените его и снова запустите программу. Если вам нравится то, что вы видите, используйте это. Если нет, отрегулируйте его соответствующим образом.

Число 9,8 м / с² - это просто ссылка на то, как работает гравитация Земли. Это не имеет ничего общего с реальной реализацией игры.

Вы можете определить, какой реальный размер будет представлять ваш пиксель. Затем используйте кинематическую формулу, чтобы рассчитать, сколько времени понадобится некоторому объекту, чтобы перейти к взгляду и снова отступить. Затем измерьте время вашего игрового объекта и попытайтесь настроить гравитацию так, чтобы этот прыжок занимал примерно столько же времени, сколько вы рассчитали.

Другие вопросы по тегам