Главная » Статьи » Примеры

Делаем тени

Делаем 2d тени в stencyl

Часто смотришь на чье то фото, в котором человек улыбаясь машет руками на фоне Великой китайской стены например, и не можешь понять что же здесь не так. Вроде все правильно, и что то не естественно. И потом понимаешь - человек не отбрасывает тени. Кто то вырезал его с одной фотографии и поместил на другую в фотошопе, а про тени забыл. А ведь именно они придают объем предметам, оживляют наше окружение и делают его настоящим. Ни одна современная игра не обходится без теней, это касается и двухмерных игр. Попробуем и мы сделать свои тени. 
Есть множество способов создания теней. При наиболее реалистичном программа модулирует лучи от источника света и рисует тень с того места, где луч встретил препятствие. Но все это сложно, мы же пойдем самым наипростейшим путем.
В данном случае тени смогут отбрасывать только квадратные предметы, можно конечно доработать пример, но это уже как вы пожелаете. Рассчитывать тени мы будем так:
Мы просто будем рисовать полигон (произвольный многоугольник) используя для двух его вершин точки нашего квадратного объекта (ящика), а для двух других высчитывая точку просто отнимая от координат объекта координаты источника освещения. Для каждой из сторон ящика мы будем рисовать свой полигон, значит всего понадобится четыре полигона. Выглядеть это будет так, как будто бы наш фонарик находится высоко над ящиками. Преимущество метода в том, что компьютеру не придется производить сложных вычислений, а значит игра не будет "тормозить" даже на мобильном телефоне.
Вот какой код у меня получился (источник света это курсор, поэтому за его координаты я принял координаты курсора):

А вот как это будет выглядеть в самой игре:

Категория: Примеры | Добавил: corax (12.01.2013)
Просмотров: 1936 | Теги: тени в stencyl, урок stencyl | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *: