В настоящее время я создаю игру для университетского задания, похожее на понг. Чтобы дать вам общее представление о том, как работает игра, в нижней части экрана есть одна весла, которая перемещается горизонтально. Существует также мяч, который будет перемещаться по экрану, и игрок должен остановить мяч от выхода из нижней части экрана с помощью весла. Каждый раз, когда мяч попадает в верхнюю часть экрана, игрок набирает очки.Как проверить столкновение между шаром разной скорости и веслом
Мне удалось получить большую часть игры, но у меня возникли проблемы с столкновениями между мячом и веслом. В настоящее время столкновение отлично работает, если мяч движется со скоростью 1 пиксель на кадр. Однако для спецификации скорость шара должна быть переменной, и поэтому мяч должен быть способен правильно совпадать с веслом на всех скоростях.
Код настоящее время я использую для столкновений выглядит следующим образом:
if((ball.y+5) == (bat.y))
{
if(ball.x >= bat.x && ball.x <= (bat.x+40))
{
ball.dy = -ball.dy;
game.goingUp = true;
}
}
По существу, это проверяет, является ли или не координаты шара равны координатам лопаткой, и изменит направление мяча, если это правда. Однако из-за этого с конкретными координатами мяч может проходить через летучую мышь полностью на более высоких скоростях.
Что я хочу сделать, так это заставить это столкновение работать со скоростью до 10 пикселей на фрейм, но я действительно не уверен, как это сделать, любая помощь будет действительно оценена.
Вы могли оценить игру в 'x' раза скорость, где' x' является скорость шара в пикселях на кадр и только обновлять выходное изображение на каждом кадре 'x'. –