1

私は現在、ユーザーが画面上で 4 つの別々のボタンをドラッグできる Android のプロトタイプを開発しようとしています。

私が抱えている問題は、衝突検出にあります。たとえば、ボタンの 1 つが別のボタンと並んでいる場合、Y 軸に沿った移動のみを許可する必要があります。同様に、ボタンの 1 つが別のボタンの上部または下部に接触している場合は、X 軸に沿った移動のみを許可する必要があります。

何かのようなもの

for (TouchButton t:myButtons)
{
  if(!(t.equals(b)))
  {
   if((b.getY() >= t.getY() && (b.getY() <= (t.getY() + t.getMeasuredHeight()))))
   {
       if((b.getX() >= t.getX() && (b.getX() <= (t.getX() + t.getMeasuredWidth()))))
       {
           //dont move
       }
   }
}

ボタンが両方の軸に接触しているかどうかを検出できるはずですか? しかし、オブジェクトを上または横にスライドできるかどうかをどのように判断すればよいでしょうか?

例

4

3 に答える 3

1
  1. ボタンが境界上にあるかどうかを確認します。

+x、-x、+y、-y に沿った境界までの距離に対応する 4 つの値を保持します。これらの値のいずれかがゼロになると、それ以上の移動は制限されます。

  1. 各ボタンは、XY 軸上で X1 から X2 および Y1 から Y2 に移動します。すべてのボタンでこれを維持します。ボタンが X 軸に沿って移動している場合は、他のボタンの X 間隔と重なるかどうかを確認します。重なる場合は、そのボタンまでの Y 距離を計算します。ゼロの場合、移動を制限します。それ以外の場合は、移動させます..
于 2013-09-12T06:07:41.480 に答える