ボールがパドルに正しく当たると、ボールが内側にロックされてリリースできないという問題があります。プレイヤーのパドルで時々発生しますが、あなたがそれを制御できるので、あなたがしなければならないのはそれを動かすことだけであり、それは逃げます。コンピューターはボールを完全に追跡するため、ボールが中に入ると逃げることができず、このビデオで何が起こるかがわかります。これは、フレームレートを上げた場合にのみ発生します。フレームレートが非常に低い場合は、エラーが発生してパドルを「通過」し、ポイントが獲得されます。少なくともこの場合、それは目立ったバグではなく、ゲームはプレイし続けます。
当然、フレームレートをできるだけスムーズにしたいので、これを整理したいと思います。これが非常に単純な衝突検出のための私のコードです。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
}
}
助けてくれてありがとう。