У меня есть проблема, когда мяч попадает прямо в ракетку, он защелкивается внутри и не может быть выпущен. Это иногда случается на весле игрока, но, так как у вас есть контроль над ним, все, что вам нужно сделать, это переместить его, и он убегает. Компьютер отлично следит за мячом, поэтому, как только он попадет внутрь, он никогда не сможет убежать, что приведет к тому, что происходит в этом видео . Теперь это происходит только тогда, когда я увеличиваю частоту кадров, если она действительно низкая, она вроде как выдает ошибки и «проходит» весло, что приводит к полученной точке. По крайней мере, в этом случае это не заметная ошибка, и игра продолжает играть.
Естественно, я хочу, чтобы частота кадров была настолько плавной, насколько это возможно, так что ... нравится разбираться с этим. Вот мой код для очень упрощенного обнаружения столкновений. Использование UIImageViews.
if (CGRectIntersectsRect (ball.frame, playerPaddle.frame))
{
if (ball.center.y < playerPaddle.center.y) //hits the "top" of the computer paddle
{
AudioServicesPlaySystemSound (hitSound);
ballVelocity.y = -ballVelocity.y; // turn ball around if collide
}
}
if (CGRectIntersectsRect (ball.frame, computerPaddle.frame))
{
if (ball.center.y > computerPaddle.center.y) //hits the "bottom" of the computer paddle
{
AudioServicesPlaySystemSound (hitSound);
ballVelocity.y = -ballVelocity.y; // turn ball around if collide
}
}
Спасибо за помощь.