Суббота, 21 Декабря 2024, 18:38

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

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

2D освещение в GM. Сурфейсы


И так. Первый вопрос новичков - что за сурфейсы? Вы про что вообще? Отвечу.
Сурфейсы - область на экране, записывающая в себя отдельные функции рисования, такие как draw_pixel, draw_circle, draw_sprite и т.п, а потом выводит это как отдельный спрайт. Это можно использовать для сохранения FPS - 10 спрайтов хорошо, а 10 в сурфейсе - лучше.
В общем, создадим spr_light, размером 128х128, зальем черным цветом и используем круговой градиент. Выровняем по центру.
Далее начинается самое интересно. Создайте obj_lc (т.е. light controller) и пропишите в create:
Код
globalvar backsurf//Создаем сурфейс для заливки фона, хотя пока - это только переменная.
backsurf=surface_create(room_width,room_height)//Создаем сам сурфейс.

Дальше в begin step:
Код
surface_set_target(backsurf)//Выбираем, на каком сурфейсе будем рисовать. Все, что ниже, не сразу рисуется, а только записывается в сурфейс.
draw_set_color(c_white)//Выбираем цвет.
draw_rectangle(0,0,room_width,room_height,false)//Рисуем прямоугольник на всю комнату.
surface_reset_target()//Отменяем выбор сурфейса.

Дальше, собственно, рисуем сам сурфейс. В рисование пишем:
Код
draw_set_blend_mode(bm_subtract)//Режим рисования - "отнятие". Смешно, да? Объяснение сей функции будет немного позже.
draw_surface(backsurf,0,0)//Рисуем наш сурфейс.
draw_set_blend_mode(bm_normal)//Нормальный режим рисования.

Готово - мы закончили работу над контроллером. Дальше создадим один объект - fonar. Объект, который и будет нашим осветителем. Пишем в step:
Код
surface_set_target(backsurf)//Выбираем сурфейс.
  draw_set_blend_mode(bm_subtract)//Как и обещал - объясняю. Наш фон будет залит черным цветом (не в настройках комнаты, а после отрисовки сурфейса. Эта функция удаляет черный цвет (меняет его прозрачность) в месте отрисовки, и рисует там натуральный цвет комнаты.
  draw_sprite(spr_light,0,x,y)//Рисуем сам фонарик.
  draw_set_blend_mode(bm_normal)//Нормальный режим рисования.
  surface_reset_target()//Отменяем выбор сурфейса.

Вот и все. Как вы поняли - все не так сложно! До встречи!
Категория: Создание игр | Добавил: SpeRdKeaR (05 Октября 2014)
Просмотров: 9662 | Комментарии: 3 | Рейтинг: 3.9/8 |
Теги: способ, освещение, 2 объекта, легкое освещение, Game Maker. lighting, новичкам, сурфейсы, , фонарик, 2d
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

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

Всего комментариев: 3
+1-
2 WhoAmI   (08 Октября 2014 14:45) [Материал]
WhoAmIПолезная, но не очень хорошо написанная статья.
На 4 с минусом.

+0-
1 HaGe   (08 Октября 2014 08:04) [Материал]
HaGeописание сурфейсов некорректное, да и объяснено всё на уровне интуитивного понимания чьего-то чужого исходника. скорей всего так оно и было. но новичкам пригодится: они любят копи-пастить без разбору =3

+0-
3 SpeRdKeaR   (10 Октября 2014 12:47) [Материал]
SpeRdKeaRНет, писал не по исходнику.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Platfinity
  • Nuclear Basic
  • LuxRender
  • Delta Engine
  • ZGameEditor
  • GZDoom
  • RPG in a Box
  • DAAD Adventure Writer
  • microStudio
  • MyRPG Master
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг