Я пытаюсь воссоздать автономную игру Dino от Google-Chrome.
В этой игре у Дино есть сила тяжести, и у него есть скорость прыжка, скорость, применяемая, когда пользователь нажимает клавишу пробела.
Со временем препятствия движутся все быстрее и быстрее к игроку.
Когда препятствия движутся быстрее, прыжок Дино также должен быть быстрее.
Я пытался сделать более быстрый прыжок, увеличивая гравитацию с течением времени, поэтому Дино спустился быстрее. Но как я могу заставить Динозавра прыгать на ту же высоту, скажем, на 50 пикселей вверх, независимо от силы тяжести.
Я пытался работать с формулой:
у = 0,5 * а * т ^ 2 + v (0) * т
Но я не могу прийти к правильному ответу.
Канва, с которой работает этот код, в качестве исходного положения в левом верхнем углу (0,0). Следовательно, скорость скачка отрицательна, а гравитация положительна.
Этот код находится внутри класса Dino, где он ссылается на Dino.
В конструкторе класса Dino у меня есть код
this.y = 0;
this.vy = 0;
this.gravity = 1;
this.speed = 0;
В функции обновления, которая вызывается каждые x раз:
this.speed += 0.001;
this.y += this.vy;
this.vy += this.gravity;
this.gravity += speed*0.001;
Функция перехода - выполняется при нажатии пробела:
this.vy = (-?);
Количество пикселей, которые прыгает Дино, увеличивается со временем. Как я мог заставить Динозавра прыгать на одинаковое количество пикселей каждый раз, независимо от силы тяжести?