|
|
|||||
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
алгоритм плиточного заполнения
помогите продумать логику плиточного заполнения. Есть некая область, которую нужно заполнить квадратиками одинакового размера, причем заполнение нужно вести от центра. Думал сделать некоторую карусель (спираль) но даже на бумаге не получается это описать
__________________
Коллекционирую чужие ActionScript Блоги |
|
|||||
На сцене клипы с именем kvadrat1, kvadrat2, kvadrat3 ...
Это по горизонтали, по сетке, нужно вложить внутрь ещё один цикл.
__________________
Дети не должны знать о своих родителях Последний раз редактировалось Tails; 07.02.2011 в 15:05. |
|
|||||
http://blog.yesutin.com/ второй пост, там несколько движков вроде.
|
|
|||||
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
делал что то похожее, попозже размещу тут.
|
|
|||||
Цитата:
1. Сдева направо. Проверяетя существование плитки снизу, если есть добавляется плитка справа, если нет, то плитка снизу и переключается на следующий тип обхода. 2. Сверху вниз. Проверяется плитка слева. Добавляется снизу или слева, если контрольных плиток нет. 3. Срава налево. Проверяется сверху. 4. Снизу вверх. Проверяется справа. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
@Tails, немного версией языка ошиблись.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
[+1 09.03.11]
Регистрация: Mar 2010
Сообщений: 128
|
У меня была схожая проблема, ресался моб и нужно было если он не может риснуться найти место где бы он смог реснуться, правда на углах у меня была проверка по несколько раз.
Код не очень хороший но он работает до сих пор, он проверяет четыре линии со всех сторон, от центра постепенно раздвигая линии. for(var i:int=1;i<=this.radWall/d;i++) for(var j:int=-i;j<=i;j++) { if(Buildings.inPointAll(j*d+x,-i*d+y)==null) if(intersectionBuilding(j*d+x,-i*d+y)==-1 ) { { xf=j*d+x; yf=-i*d+y; break; } } if(Buildings.inPointAll(-i*d+x,j*d+y)==null) if(intersectionBuilding(-i*d+x,j*d+y)==-1 ) { { xf=-i*d+x; yf=j*d+y; break; } } if(Buildings.inPointAll(i*d+x,-j*d+y)==null) if(intersectionBuilding(i*d+x,-j*d+y)==-1 ) { { xf=i*d+x; yf=-j*d+y; break; } } if(Buildings.inPointAll(i*d+x,j*d+y)==null) if(intersectionBuilding(i*d+x,j*d+y)==-1 ) { { xf=i*d+x; yf=j*d+y; break; } } }
__________________
for(;;); |
Часовой пояс GMT +4, время: 07:49. |
|
« Предыдущая тема | Следующая тема » |
|
|