Я реализую эту игру, которая использует гравитацию, но я не знаю, как симулировать гравитацию для шара.
У меня есть таймер, который запускается сразу после того, как я «уронил» мяч, и мне нужно установить вертикальное положение моего предметного шара.
Связанные функции:
int ball->setVerticalPosition(int Y);
float timer->getTime();
Спасибо!
Хорошо, в общем, вы бы рассчитали новую позицию (pos_y) с помощью этого уравнения:
t = timer->getTime();
float pos_y = pos_y0 + v_0*t - 4.9 * t *t;
ball->setVerticalPosition(pos_y);
(v_0 — начальная скорость, а pos_y0 — начальные координаты вашего мяча). В вашем случае вы говорите, что вы «сбрасываете» мяч, поэтому, вероятно, будет лучше, если вы уберете v_0 * t. И pos_y0 — исходная высота (зависит от вашей системы координат).
Не забудьте проверить, когда pos_y = 0 (возможно, ваш этаж!)
Я дал 4,9, потому что сила тяжести равна 9,8, а уравнение равно «1/2 * g * t * t», я просто разделил и дал окончательное число. Это в «метрах», например, следует преобразовать в пиксели.