Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #26, ЯНВАРЬ 2003 г.

][-desktop - взгляд в небо

ilich (ilich@winfo.org)

Спецвыпуск Xakep, номер #026, стр. 026-086-5


};

};

// НОВОЕ ЗАКОНЧИЛОСЬ

ars._rotation = seconds*6;

arm._rotation = minutes*6;

arh._rotation = hours*30+minutes*0.5+180;

if ((minutes == 0) and (seconds == 0)and(_root._currentframe>=18)) {

if (hours>=12) {

hours -= 12;

};

ding.start(0, hours);

}

}

onClipEvent (load) {

ding = new Sound(this);

ding.attachSound("bum.wav");

}

Объясняю вначале для неба. В скрипте для тебя не должно быть ничего сложного и нового. Сутки делятся мною на четыре части: день (с десяти утра до пяти вечера), вечер (с пяти до десяти вечера), ночь (от десяти вечера до пяти утра) и, собственно, утро (с пяти до десяти утра). Теперь обо всем по порядку. Днем небо голубое :). Достигается это тем, что прямоугольник "blue" полностью непрозрачен (_alpha=100). Начинается вечер. Клип "C - BlueSky" теряет свою непрозрачность на процент каждые три минуты (отсчет процентов ведется в переменной "ad") и к десяти часам (т.е. к ночи) становится полностью прозрачным. Теперь за ним отчетливо видны месяц со звездами (хотя, на самом деле, они видны еще часов эдак с семи). Всю ночь голубой прямоугольник остается прозрачным. По звездному небу плавно прогуливается одинокая тучка. Красиво. В пять утра начинает светлеть небо, где-то часам к девяти звезды уже неразличимы. Появляется солнышко.

У солнышка алгоритм немного посложнее. Основная фишка тут в том, что днем солнце должно подниматься (до обеда) и опускаться (после обеда). Дабы максимально упростить модель поведения нашего дневного светила, я в качестве траектории его движения выбрал ломаную, состоящую из двух отрезков: по одному из них солнце поднимается, по другому - опускается.

В качестве переломного момента (времени обеда) выбрано время 13 часов 30 минут. Не подумай, что я всегда принимаю пищу строго в этот миг. Просто это середина между началом утра и концом вечера по нашему времяисчислению. Ночью, как известно, на территории нашей Родины солнца не видно. Вот и у нас во флешке ночью солнце будет невидимым (_alpha=0). В переменной "col" вычисляется, сколько минут прошло с начала утра. За неночное время солнце по горизонтали должно пройти расстояние около тысячи пикселей (через весь экран), в моем примере это тысяча двадцать - ровно столько минут между началом рассвета и концом захода. Поэтому-то горизонтальная координата солнца практически равна "col". Вертикально солнце движется по-другому. Вначале мы ставим его на высоту 660. При этом если Кремль открыт, т.е. флешка работает на полную, из-за него выглядывают лишь отдельные лучики, если же он закрыт, то солнце находится в нижней части экрана, что, в принципе, тоже приемлемо для момента его появления/исчезания. Формулы исчисления вертикальной координаты до и после обеда отличаются, т.к. до обеда, пока количество прошедших минут еще мало, а вертикальная координата солнца должна уменьшаться, после обеда - значение "col" продолжает расти, а координату уже пора увеличивать.

Когда ты поймешь, что тебе все понятно :), можешь сесть поудобнее, плавно надавить на Ctrl+Enter и начать релаксировать до наступления реального лета.

Назад на стр. 026-086-4  Содержание  Вперед на стр. 026-086-6