2016-10-27 6 views
0

私は学校プロジェクトのためのブレークアウトゲームを作っています。私が走っている唯一の問題は、ボールとレンガが衝突したときのボールのバウンスです。私はball1.getEllipse()。intersects(b.getRectangle())を使用して、ブリックが衝突しているかどうかを調べることができました。衝突した側に応じてバウンスする可能性があります。これが主な問題です。 .interectピースは、レンガがどちらの側に当たっているのかを私には示さない。私はxまたはyの速度を変更するかどうかを知るためにこれが必要です。誰もがこれを理解する方法上の任意のアイデアを持っている場合は、あなたの入力を残してください(私は5時間溶液を考えるしようとしている、私はあきらめた)。交差点を使用した長方形とサークルコリジョンJava

public void collision(int i) { 

    for (Block b : blocks) { 
     if (ball1.getEllipse().intersects(b.getRectangle())) { 
      if (!b.isDestroyed()) { 
       b.destroy(); 
       blockCount-=1; 
       ball1.brickBounce();`public void collision(int i) { 

答えて

1

私はあなたの質問から理解して何から、あなたボールが当たっている矩形のどの辺を知りたいかこれを行う簡単な方法は、ボールの位置と長方形の位置を取って両者を比較することです。ボールのx位置が四角形x位置よりも小さい場合 - その幅の半分(境界のx位置を取得するため)、ボールが左側に当たっています。その後、右側を逆にすることができます。上または下に当たったかどうかをチェックするのは、yの位置と長方形の高さだけに似ています。各形状のxとyの位置が中心であると仮定していることに注意してください。中心である場合と同じ結果を得るために微調整を行う必要がないだけでなく、