Может кто-нибудь объяснить, как поэкспериментировать со значением гравитации?
Я следую руководству о том, как играть в клон неповоротливой птицы в рамках 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 м / с² - это просто ссылка на то, как работает гравитация Земли. Это не имеет ничего общего с реальной реализацией игры.
Вы можете определить, какой реальный размер будет представлять ваш пиксель. Затем используйте кинематическую формулу, чтобы рассчитать, сколько времени понадобится некоторому объекту, чтобы перейти к взгляду и снова отступить. Затем измерьте время вашего игрового объекта и попытайтесь настроить гравитацию так, чтобы этот прыжок занимал примерно столько же времени, сколько вы рассчитали.