Четверг, 21 Ноября 2024, 16:02

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [83]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [147]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [167]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [132]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Для какой операционной системы пишите игры?
Всего ответов: 17863
Главная » Статьи » Программирование

Урок "Свет" actionScript2.0
посмотреть как это будет:
http://us.ua/72726/
исходник (9 версия flash):
http://us.ua/72728/

рисуем мувик "ground" (черный), делаем поле черным (в настройках). Для плавности в настройках можно поставить фпс 30.
В рут кидаем код:

onEnterFrame=function(){
duplicateMovieClip(ground,"ground",100)//копируем мувик ground для того чтобы он был выше света
t_x=275//координаты откуда идет свет
t_y=200
t2_x=275
t2_y=200
t3_x=275
t3_y=200
t4_x=275
t4_y=200
t5_x=275
t5_y=200
ugol=Math.atan2(_ymouse - 200, _xmouse - 275) / Math.PI * 180;//определяем угол к курсору
for(i=1;i<120;i++){
t_x += 3 * Math.cos(ugol/180*Math.PI);//двигаем точку от центра
t_y += 3 * Math.sin(ugol/180*Math.PI);
if(ground.hitTest(t_x,t_y,true)){//точка попала на ground
i=301
}
}
// по аналогии
for(i=1;i<120;i++){
t2_x += 3 * Math.cos((ugol-5)/180*Math.PI);
t2_y += 3 * Math.sin((ugol-5)/180*Math.PI);
if(ground.hitTest(t2_x,t2_y,true)){
i=301
}
}
for(i=1;i<120;i++){
t3_x += 3 * Math.cos((ugol-10)/180*Math.PI);
t3_y += 3 * Math.sin((ugol-10)/180*Math.PI);
if(ground.hitTest(t3_x,t3_y,true)){
i=301
}
}
for(i=1;i<120;i++){
t4_x += 3 * Math.cos((ugol+5)/180*Math.PI);
t4_y += 3 * Math.sin((ugol+5)/180*Math.PI);
if(ground.hitTest(t4_x,t4_y,true)){
i=301
}
}
for(i=1;i<120;i++){
t5_x += 3 * Math.cos((ugol+10)/180*Math.PI);
t5_y += 3 * Math.sin((ugol+10)/180*Math.PI);
if(ground.hitTest(t5_x,t5_y,true)){
i=301
}
}
this.createEmptyMovieClip("aa",1)//рисуем линию
with(aa){
lineStyle(20,0xFFFFFF)//белая, толщина=20
moveTo(275,200)
lineTo(t_x,t_y)
moveTo(275,200)
lineTo(t2_x,t2_y)
moveTo(275,200)
lineTo(t3_x,t3_y)
moveTo(275,200)
lineTo(t4_x,t4_y)
moveTo(275,200)
lineTo(t5_x,t5_y)
}
aa.filters = [new flash.filters.BlurFilter(14, 14, 3)];//размытие света
}

Скриншоты:


Категория: Программирование | Добавил: apoptom (22 Октября 2010) | Автор: Юрий Сухоставский
Просмотров: 3398 | Комментарии: 4 | Рейтинг: 4.3/6 |
Теги: ActionScript, свет, as2, actionScript2.0, AS, пучок света, Флэш, Flash, флеш, svet
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Урок "Свет" actionScript2.0», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 4
+0-
4 apoptom   (30 Октября 2010 15:18) [Материал]
в принципе все так,
сначала движется точка от заданой до курсора - срабатывает хитТест - рисуеться линия

+1-
3 SwordOfTruth   (30 Октября 2010 13:38) [Материал]
SwordOfTruthХотелось бы понять принцип. Как я понимаю свет состоит из пяти лучей, которые рисуются каждый кадр от заданной точки в направление к мыши ( каждый луч при этом имеет отклонение на несколько градусов ), только я не понимаю как hitTest определяет до куда рисовать линию луча света. Объясни принцип, поправь если что не так!

+1-
2 apoptom   (25 Октября 2010 20:05) [Материал]
Спасибо. Подписал основные моменты. Но все равно я считаю что данный урок не по азам as, а для уже более продвинутого программиста.

+1-
1 Seidmannen   (25 Октября 2010 18:18) [Материал]
SeidmannenОтличный урок! Спасибо!
Одно но - нельзя было разъяснить, что строчки кода делают?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Tuesday JS
  • DEngine
  • Twine
  • ORTS
  • NetGore
  • Ultra Engine
  • 3DSTATE Engine
  • Intersect Engine
  • Wii Game Studio
  • PlayCanvas
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг