PDA

Просмотр полной версии : добавление объекта в координаты не содержащие другой объект


mihael_p
11.06.2013, 13:55
Есть задача - расставить объекты на сцене так, чтобы ни один объект не налезал, не закрывал собой, другой объект. Я вроде начал писать решение и тут же застопорился. Помогите пожалуйста, подскажите как быть?
Вот, что надумал я:


for (var i:int = 0; i < animalsCount; i++)
{
animal = new Animal(nowAnimals.pop(), i);
animal.addEventListener(AnimalEvents.ANIMAL_CHECKED, check);
animal.addEventListener(AnimalEvents.ANIMAL_REMOVED, remCLS);
animals.push(animal);
addChild(animal);
locateAnimals(animal);
}

private function locateAnimals(anim:Animal):void
{

if (animals.length == 0)
{
anim.x = int( 75 + ( Math.random() * ( 600 - 75 + 1 ) ));
anim.y = int( 75 + ( Math.random() * ( 600 - 75 + 1 ) ));
return;
}
var X:int = int( 75 + ( Math.random() * ( 600 - 75 + 1 ) ));
var Y:int = int( 75 + ( Math.random() * ( 600 - 75 + 1 ) ));
anim.x = X;
anim.y = Y;
for (var i:int = 0; i < animals.length; i++)
{
var obj:Animal = animals[i] as Animal;
if (anim.hitTestObject(obj))
{

}else {
anim.x = X;
anim.y = Y;
}
}
}

GBee
11.06.2013, 15:39
Где то вроде в блогах забивали круг кружками без пересечений случайно.

mihael_p
11.06.2013, 16:54
Хм... что то я не могу найти, по крайней мере поиск не выдал темы где говорилось бы об этом:(

GBee
11.06.2013, 17:21
http://www.flasher.ru/forum/blog.php?b=613 Помню же, что Дарк писал.

mihael_p
11.06.2013, 18:09
А кроме спирали варианты есть?

Hauts
11.06.2013, 18:27
Если animal хорошо вписывается в окружность, можно очень легко решить.

mihael_p
11.06.2013, 18:48
Плохо вписывается, там размеры от: 30 * 60 до 80 * 125 разбросаны.

maincode
11.06.2013, 20:10
Покажите как выглядит Animals(контур) ?

mihael_p
11.06.2013, 22:07
Покажите как выглядит Animals(контур) ?

Простите, а зачем? Какая разница, что позиционировать, главное, чтобы результат был нужным.

Wolsh
11.06.2013, 23:33
Какая разница, что позиционироватьМожет, такая? Не все же мыслят только квадратами.
29685

mihael_p
12.06.2013, 11:44
Может, такая? Не все же мыслят только квадратами.

Что то я сглупил, простите. В моем случае именно квадраты, как на примере справа.