Blog/content/posts/2022/gamemaker/background_room_color.md

54 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "🟪 Цвет фона комнаты в GameMaker"
date: 2022-12-20T23:41:40+03:00
draft: false
tags: [gamemaker, gamedev, tutorial]
---
## Введение
В этом уроке я покажу, как просто изменить цвет фона комнаты
в GameMaker через код GML.
Для этого нам понадобится всего одна функция —
[layer_background_blend(background_element_id, blend);](https://manual.yoyogames.com/GameMaker_Language/GML_Reference/Asset_Management/Rooms/Background_Layers/layer_background_blend.htm)
Эта функция управляет смешиванием фона sprite.
По умолчанию в новой пустой комнате на фоновом слое «Background» нет спрайта,
но применение цветов через функцию `layer_background_blend()` работает.
## Пробуем на практике
Выбираю комнату, в **Room Settings** нажимаю на кнопку **[Creation Code]**,
чтобы открыть окно редактирования кода для комнаты и пишу следующий код.
```cpp
var background = layer_background_get_id(layer_get_id("Background"));
layer_background_blend(background, c_white);
```
С помощью функции `layer_background_get_id()` получаем идентификатор слоя в комнате
и с помощью функции `layer_background_blend()` применяю смешивание с белым цветом.
В GameMaker есть константы уже готовых цветов, со списком которых можно ознакомиться
на этой странице:
[Colour And Alpha](https://manual.yoyogames.com/GameMaker_Language/GML_Reference/Drawing/Colour_And_Alpha/Colour_And_Alpha.htm).
## Применяем свой цвет
Я уверен, что в 99% случаев цветов предложенных GameMaker не хватит.
Ничего страшного. Можно прибегнуть к функции `make_colour_rgb(red, green, blue);`.
Она создаёт цвет из цветовой модели RGB. У функции три аргумента, вполне очевидные
и не требуют дополнительного пояснения.
Полный пример кода с использованием своего цвета.
```cpp
var background = layer_background_get_id(layer_get_id("Background"));
var my_color = make_colour_rgb(71, 45, 60);
layer_background_blend(background, my_color);
```
Готово. Запускаем игру и наслаждаемся результатом.