Просмотр полной версии : Random мувиков на области, ограниченной определенным мувиком не квадратной формы.
Есть мувик, с названием mcOblast и мувик mcZ.
Так вот надо, чтобы mcZ рандомно появлялся на области, ограниченной мувиком mcOblast. mcOblast - имеет НЕ КВАДРАТНУЮ форму, а произвольную: полоски + все что угодно...
P.S. Прошу не ругаться сильно, вводил в поиске "random", ничего похожего не нашел... :(
mach.hitTest(m)
если объкт mach вошел в объект m.
читай хелп по hitTest
Перечитал взад и вперед.
А как это с рандомом совместить?
whiteRed
14.08.2006, 14:44
генерируй точки рандомом пока не сработает хиттест
А как вообще точки генерировать?
Имеются ввиду координаты _x и _y?
KidsKilla
14.08.2006, 15:53
function getR(){
return {
x:Math.round(mcOblast ._x+Math.random()*mcOblast ._width),
y:Math.round(mcOblast ._y+Math.random()*mcOblast ._height)
}
}
var r = getR();
while(!mcOblast .hitTest(r.x,r.y,true)){
r = getR();
}
mcZ._x = r.x;
mcZ._y = r.y;
У меня вот такой бред получился:
function rZ() {
for (i=0; !mcFoto.hitTest(X, Y, true); i++) {
X = Math.random()*468;
Y = Math.random()*60;
if (mcFoto.hitTest(X, Y, true)) {
_root.mcF.attachMovie(mcZ, "mc"+i, i, {_x: X, _y: Y});
}
}
}
I = setInterval(rZ, 100); - не работает!
Мне mcZ-ки аттачить надо в ту область с интервалом определенным в разные точки области...
Т.е. function rZ() {
for (i=0; !mcOblast.hitTest(X, Y, true); i++) {
X = Math.random()*468;
Y = Math.random()*60;
if (mcOblast.hitTest(X, Y, true)) {
_root.mcF.attachMovie(mcZ, "mc"+i, i, {_x: X, _y: Y});
}
}
}
I = setInterval(rZ, 100);
2 KidsKilla:
Мне mcZ-ки аттачить надо в ту область с интервалом определенным в разные точки области...
А твой код, не пойму что делает... :(
2 KidsKilla:
Вытащил на рабочую область mcZ, все равно твой код не работает :(
2 KidsKilla:
return {
x:Math.round(mcOblast ._x+Math.random()*mcOblast ._width),
y:Math.round(mcOblast ._y+Math.random()*mcOblast ._height)
}Ты же по длине и ширине области mcOblast проверяешь?!? а мне надо только саму область, а не прямоугольник, в который она вписана...
KidsKilla
21.09.2006, 14:35
function getR(mc){
return {
x:Math.round(mc._x + Math.random() * mc._width),
y:Math.round(mc._y + Math.random() * mc._height)
}
}
function placeRandom(obl, z){
var r = getR(obl);
while(!obl.hitTest(r.x, r.y, true)) r = getR(obl);
z._x = r.x;
z._y = r.y;
}
//Вызов:
var t = setIntarval(placeRandom, 1000, mcOblast, mcZ);
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.