Пример рекомендуется для знающих GML на хорошем уровне
Пример рекомендуется для знающих GML на хорошем уровне
Освещение, которое хочет быть похожим на освещение в "Terraria"
Есть 2 сетки освещение. Первая - видимая, а вторая скрыта.
Берется первая сетка, и для каждой ячейки проверяется освещенность, и в зависимости от неё изменяется освещённость соседних блоков (в зависимости от самих блоков) на скрытой сетке. После цикла, первой ячейке присваивается вторая сетка, и цикл идет заново.
В моем примере соседние блоки - это блоки выше, левее, ниже, правее проверяемого блока. Но для улучшения качества надо проверять блоки по диагоналям, но тогда уменьшится производительность, которая и так тут очень мала.
Для создания источника освещения, надо в каждом цикле присваивать ячейке источника значение яркости источника.
Если BlockMode=1
- ЛКМ - Убрать блок
- ПКМ - Поставить блок
- Пробел - Выключить BlockMode
Если BlockMode=0
- ЛКМ - Поставить источник освещения
- ПКМ - Убрать ближайший источник освещения
- СКМ - Убрать "импульсный" источник освещения
- Пробел - Включить BlockMode
Инструкция:
Вы сначала увидите черный квадрат, т.к. нет ни одного источника света.
Потыкайте ЛКМ для нахождения пещеры, и поэкспериментируйте.
17.07.12 Исправлен код 25 строки события нажатия правой клавиши в "object_engine" с tid!=other.id на id!=other.id
17.07.12 Добавлены комментарии
Добавлено: 17.07.2012Добавил Changelog