3
ブレイクアウトのためのより洗練されたボールパドル衝突アルゴリズム?
私が取り組んでいる簡単なブレイクアウトゲームがあります。衝突コードはしっかりしています。物事はあるべきように跳ね返り、物事を通過したり他のファンキーさを行ったりしませんが、反射は少し単純化しています。その結果、ボールがループにスタックしてしまい、ループを壊すことなく最後のブロックを打てない状態になりやすい。 現在、パドル衝突コードはY速度を反映しており、パドルのどちら側に当たるかに応じてX速度を反映しています。 // Check for paddle collisions if ((m_ball.rect()).intersects(m_paddle.rect())) { double ballCenter = m_ball.rect().getX() + (m_ball.rect().getWidth()/2); double paddleCenter = m_paddle.rect().getX() + (m_paddle.rect().getWidth()/2); m_ball.setSpeedY(m_ball.speedY() * -1); if (ballCenter > paddleCenter) { m_ball.setSpeedX(Math.abs(m_ball.speedX())); } else { m_ball.setSpeedX(-Math.abs(m_ball.speedX())); } } アルゴリズムをより「興味深い」ものにして、ボールが同じ四角形でバウンドし続けないようにコントロールを強化する方法はありますか?