我正在处理一个项目,当坐标与另一个对象相同时,像方形这样的对象应该消失。第一个正方形应放在第二个正方形上,第一个正方形小于第二个正方形。
以下是代码:
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)的宽度和高度。
我似乎无法找到问题的解决方案。有人可以帮帮我吗?
答案 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);
}
或许你的意思是别的。如果是,请更新您的问题。