![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 12
|
Люди добрые, нужна ваша помощь! Подскажите как сделать так, чтобы определенная область флеша случайным образом заполнялась квадратиками, но с проверкой перекрытия(тобишь надо чтоб в одном месте мог находиться только один квадратик, не больше(см.рис). Дублирование реализовать мне удалось, но вот с проверкой проблемы. Я использовал сл. скрипт:
s++; if(i !== p[i] && j !== p[i][j]){ box._x = 4*i; box._y = 4*j; _root.box.duplicateMovieClip(box[i+j],s); i=Math.round(464*Math.random()/4); j=Math.round(56*Math.random()/4); }else{ do{ i=Math.round(464*Math.random()/4); j=Math.round(56*Math.random()/4);}while(i == p[i] && j == p[i][j]); } Ошибку найти не могу. Явно не хватает опыта и знаний. Буду очень благодарен за помощь! Заранее спасибо! |
|
|||||
|
Регистрация: Sep 2005
Адрес: SPb
Сообщений: 852
|
Ну, ты бы хотя бы прокомментировал свой код, а то так непонятно.
И надо пользоваться специальным тэгом для кода, а то так он плохо читается. |
|
|||||
|
Спроси Sh@man'а. Он в прошлом году заполнял случайным образом картинками прямоугольную область.
Задача на самом деле не так проста, как видится при первом прочтении. Последний раз редактировалось valvika; 06.01.2006 в 06:09. |
|
|||||
|
Простое решение "в лоб".
Последний раз редактировалось opoek; 06.01.2006 в 10:59. |
|
|||||
|
Регистрация: Mar 2001
Сообщений: 1,147
|
я вот так вот это делаю...
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит. |
|
|||||
|
как вариант: разбиваем область на прямоугольники (сколько там надо..), а в них уже в случайные координаты аттачим квадратики..
import flash.geom.*;
/*
where - в каком мувике создаем
from - lincage Id квадратика в библиотеке
nx,ny - на сколько делим по x и y
r - область которую запоняем
*/
function randFill(where:MovieClip,from:String,nx:Number,ny:Number,r:Rectangle){
var mc=where.createEmptyMovieClip('fill',where.getNextHighestDepth())
mc._x=r.x;
mc._y=r.y;
var tmp=mc.attachMovie(from,'tmp',0);
var w=r.width/nx-tmp._width, h=r.height/ny-tmp._height;
var d=0;
for(var i=nx;i--;) for(var j=ny;j--;) mc.attachMovie(from,d++,d,{_x:i*r.width/nx+w*Math.random(),_y:j*r.height/ny+h*Math.random()});
}
randFill(_root,'box',10,16,new Rectangle(120,80,200,200));
|
|
|||||
|
Регистрация: Mar 2001
Сообщений: 1,147
|
что-то мне подсказывает, что мы разные задачи решаем
![]() я представил вариант полного заполнения области в случайном порядке с неслучайными координатами каждой позиции. меня к этому подтолкнул кусок кода автора silin представил вариант последовательного заполнения всех ячеек со случайными координатами в пределах ячейки. opoek сделал случайное число квадратиков и случайные координаты я ж теперь спать не буду, чего автору-то надо было?! |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 12
|
Цитата:
По сути, надо было реализовать полное заполнение площади квадратиками (4х4) (поэтому и box._x = 4*i; таким образом я получал случайную ячейку) со случайными координатами. Буду очень Вам благодарен, если разъясните в чем проблема. Не получается подключить ваш скрипт. ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|