LostWarrior
12.07.2002, 13:58
Вот вам пример полета сквозь вселенную.
Кто найдет причину, по которой работает не правильно?
stop();
getRandom = function(min, max){
return Math.floor(Math.random()*(max+1-min))+min;
}
onEnterFrame = function () {
while (stars<maxStars) {
_root.createEmptyMovieClip("star"+stars, stars);
with (_root["star"+stars]) {
_x = getRandom(120, 170);
_y = getRandom(120, 170);
sang = (_y-y0)/Math.sqrt(Math.pow((_y-y0), 2)+Math.pow((_x-x0), 2)); // синус угла направления звезды
lineStyle(1, 0xFFFFFF, 100);
moveTo(0, 0);
lineTo((_x-x0)*sang/2, (_y-y0)*sang/2);
}
stars++;
}
// Двигаем звезды
for (i=0; i<stars; i++) {
with (_root["star"+i]) {
_x += (_x-x0)*sang/2;
_y += (_y-y0)*sang/2;
clear();
lineStyle(1, 0xFFFFFF, 100);
moveTo(0, 0);
lineTo((_x-x0)*sang/2, (_y-y0)*sang/2);
if ((_x>1000) || (_y>1000) || (_x<-1000) || (_y<-1000)) {
removeMovieClip();
_root.createEmptyMovieClip("star"+i, i);
with (_root["star"+i]) {
_x = getRandom(120, 170);
_y = getRandom(120, 170);
sang = (_y-y0)/Math.sqrt(Math.pow((_y-y0), 2)+Math.pow((_x-x0), 2));
lineStyle(1, 0xFFFFFF, 100);
moveTo(0, 0);
lineTo((_x-x0)*sang/2, (_y-y0)*sang/2);
destroy = false;
}
}
}
}
}
в первом кадре инициализация значений:
maxStars=30;
stars=0;
ms=0;
x0=150;
y0=150;
размер клипа 300х300, цвет черный.
Получается много интересных эффектов, если много раз проверять, но правильно не работает.
Кто найдет причину, по которой работает не правильно?
stop();
getRandom = function(min, max){
return Math.floor(Math.random()*(max+1-min))+min;
}
onEnterFrame = function () {
while (stars<maxStars) {
_root.createEmptyMovieClip("star"+stars, stars);
with (_root["star"+stars]) {
_x = getRandom(120, 170);
_y = getRandom(120, 170);
sang = (_y-y0)/Math.sqrt(Math.pow((_y-y0), 2)+Math.pow((_x-x0), 2)); // синус угла направления звезды
lineStyle(1, 0xFFFFFF, 100);
moveTo(0, 0);
lineTo((_x-x0)*sang/2, (_y-y0)*sang/2);
}
stars++;
}
// Двигаем звезды
for (i=0; i<stars; i++) {
with (_root["star"+i]) {
_x += (_x-x0)*sang/2;
_y += (_y-y0)*sang/2;
clear();
lineStyle(1, 0xFFFFFF, 100);
moveTo(0, 0);
lineTo((_x-x0)*sang/2, (_y-y0)*sang/2);
if ((_x>1000) || (_y>1000) || (_x<-1000) || (_y<-1000)) {
removeMovieClip();
_root.createEmptyMovieClip("star"+i, i);
with (_root["star"+i]) {
_x = getRandom(120, 170);
_y = getRandom(120, 170);
sang = (_y-y0)/Math.sqrt(Math.pow((_y-y0), 2)+Math.pow((_x-x0), 2));
lineStyle(1, 0xFFFFFF, 100);
moveTo(0, 0);
lineTo((_x-x0)*sang/2, (_y-y0)*sang/2);
destroy = false;
}
}
}
}
}
в первом кадре инициализация значений:
maxStars=30;
stars=0;
ms=0;
x0=150;
y0=150;
размер клипа 300х300, цвет черный.
Получается много интересных эффектов, если много раз проверять, но правильно не работает.