Отметьте один ящик внутри другого - PullRequest
1 голос
/ 24 января 2012

У меня есть буксирные ящики box1 и box2. Я хочу проверить, находится ли box1 внутри коробки2 с помощью кординатов, может кто-нибудь помочь

Ответы [ 4 ]

3 голосов
/ 24 января 2012

использовать можно использовать приведенный ниже код, чтобы проверить перехват мувиклипа или нет

box1.getRect(this).intersects(box2.getRect(this))

это возвращает истину, если перехватить или ложь, если ошибка

2 голосов
/ 24 января 2012

Вы можете определить объект Rectangle с вашими координатами ящиков следующим образом:

var coords1:Rectangle = new Rectangle(box1.x, box1.y, box1.width, box1.height);
var coords2:Rectangle = new Rectangle(box2.x, box2.y, box2.width, box2.height);

Затем просто используйте метод containsRect:Boolean:

coord2.containsRect(coord1)
1 голос
/ 24 января 2012

Я не уверен, какие именно у вас прямоугольники, но если они представляют собой какие-то прямоугольники, определенные с координатами верхнего левого угла (x, y) и (ширина, высота), то

if ((box1.x >= box2.x)&&(box1.y >= box2.y)&&(box1.width <= box2.width-(box1.x-box2.x)&&(box1.height <= box2.height-(box1.y-box2.y))) {
    // box1 is inside box2
}

должен сделать работу.

Если ваши коробки 3D, то вам придется сделать то же самое с z и глубиной:

&&(box1.z >= box2.z)&&(box1.depth <= box2.depth-(box1.z-box2.z))
1 голос
/ 24 января 2012

Используйте метод hittestobject для обнаружения столкновения

...