通过坐标从屏幕中删除对象

时间:2016-04-06 16:58:29

标签: actionscript-3

我正在处理一个项目,当坐标与另一个对象相同时,像方形这样的对象应该消失。第一个正方形应放在第二个正方形上,第一个正方形小于第二个正方形。

以下是代码:

    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来自方形2(b)的宽度和高度。

我似乎无法找到问题的解决方案。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

square1的坐标不能大于square1(如果查询则首先),另一方面小于square2-50(如果查询则为秒)。所以这永远不会成真。

如果您想检查坐标是否相同,请使用:

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

答案 1 :(得分: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);
}

或许你的意思是别的。如果是,请更新您的问题。