![]() |
|
||||||||||
|
|||||
|
Вот вам пример полета сквозь вселенную.
Кто найдет причину, по которой работает не правильно? 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, цвет черный. Получается много интересных эффектов, если много раз проверять, но правильно не работает.
__________________
Michael SuLLivaN #icq 140702090 Я стал вегетарианцем не потому, что люблю животных, а потому... что НЕНАВИЖУ растения! |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
Я думаю, проблема в слишком большом количестве кода. Там от силы должно быть пару строк.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Я ошибку уже исправил. а вот то-же самое в пару строк было-бы очень интересно посмотреть
![]()
__________________
Michael SuLLivaN #icq 140702090 Я стал вегетарианцем не потому, что люблю животных, а потому... что НЕНАВИЖУ растения! |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
function onEnterFrame() {
if (--_timeout > 0) return;
(newStar = attachMovie("Star", "S" + ++_depth, _depth))._x = 120 + random(60);
newStar._dx = (newStar._speed = 10 + random(5)) * Math.cos(_angle = Math.atan2((newStar._y = 120 + random(60)) - 150), newStar._x - 150);
newStar._dy = newStar._speed * Math.sin(_angle);
newStar.onEnterFrame = function() {
if (((this._x += this._dx) > 300)or(this._x < 0)) this.removeMovieClip();
if (((this._y += this._dy) > 300)or(this._y < 0)) this.removeMovieClip();
}
_timeout = 2 + random(3);
}
__________________
...убивать людей не удовольствия ради, но для еды. Последний раз редактировалось DeliMIter; 12.07.2002 в 19:47. |
![]() |
Часовой пояс GMT +4, время: 10:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|