У меня есть мяч, который отскакивает от стен.Этот отскок прост, я просто делаю это, (фрагмент кода)
if ( x - moveSpeed < 0 ) // Ball hit left wall
xVel *= -1;
Однако у меня также есть прямоугольник, который перемещает игрок.Отскок на этом практически работает как отскок на стенах.
Но я понял, что когда шар получил движение, подобное изображению, я не смог заставить его двигатьсяпрямо вверх.Поэтому мне нужно какое-то вычисление относительно движения прямоугольников, чтобы повлиять на исходящий угол мяча.Прямоугольник всегда имеет постоянную скорость движения при движении.На этом рисунке показан прямоугольник, движущийся влево, и шар, ударяющий по нему во время своего движения, что приводит к углу 90 градусов.(Которого не всегда должно быть 90).
Извините за мои дрянные фотографии, надеюсь, они имеют смысл.Моя математика ржавая, поэтому мне действительно нужен толчок в правильном направлении.