2016-04-06 11 views
-1

私は、座標が別のオブジェクトと同じ場合、正方形のようなオブジェクトが消えるようなプロジェクトに取り組んでいます。最初の正方形は2番目の正方形に配置し、1番目の正方形は2番目の正方形よりも小さくします。座標からオブジェクトを取り除く

ここでは、コードは次のとおり

public function weg(e:Event):void 
    { 
    if (b.x < a.x && b.y < a.y && b.x + 60 > a.x + 50 && b.y + 60 > a.y + 50) 
     { 
      removeChild(a); 
     } 
    } 

+50正方形1(A)、及び60の幅及びheigthから来る(b)は、正方形2の幅とheigthから来ます。

問題の解決策が見つからないようです。誰かが私を助けることができますか?

+0

座標が他のオブジェクトと同じ*正確*の場合のみですか?なぜ ' - 50'なの?このコードはどのような振る舞いをしていますか、*正確に*どのような振る舞いを期待していますか? – Aaron

答えて

0

square1の座標はsquare1(最初のクエリの場合)より大きく、もう一方はsquare2 - 50(クエリの場合は2番目)より小さくすることはできません。だからこれは決して真実ではありません。

あなたは座標が同じだけで使用されているかどうかを確認したい場合:

public function check():void 
{ 
    if (square1.x == square2.x && sqaure1.y == square2.y) 
    { 
     removeChild(square1); 
    } 
} 
0

座標は別のオブジェクトとして 同じであれば、正方形のようなオブジェクトが消えるはずです。

これが本当であるならば、あなたは、単に必要があります。

if (square1.x == square2.x && square1.y == square2.y) { 
    removeChild(square1); 
} 

しかし、あなたが投稿したコードが-50のオフセットを使用しています。あなたはその値で何をしようとしているのか説明していません(x1 > x2 && x1 < x2 - 50は不可能なので動作しません)ので、私は推測していますが、おそらくが重複しての四角形を取り除きたいのですか?

if (square1.getBounds(this).intersects(square2.getBounds(this))) { 
    removeChild(square1); 
} 

をそれともお互いの一定距離内にある正方形を削除する:あなたは方法の束が、ここでは一つだということを行うことができます。

if (Point.distance(new Point(square1.x, square1.y), new Point(square2.x, square2.y)) < 50) { 
    removeChild(square1); 
} 

おそらく何かを意味します。もしそうなら、あなたの質問を更新してください。