И так. Первый вопрос новичков - что за сурфейсы? Вы про что вообще? Отвечу. Сурфейсы - область на экране, записывающая в себя отдельные функции рисования, такие как 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()//Отменяем выбор сурфейса.
Вот и все. Как вы поняли - все не так сложно! До встречи!
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «2D освещение в GM. Сурфейсы», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
описание сурфейсов некорректное, да и объяснено всё на уровне интуитивного понимания чьего-то чужого исходника. скорей всего так оно и было. но новичкам пригодится: они любят копи-пастить без разбору =3