Перейти к содержимому

Unpack Color

Обратная сторона packcolor: одно число снова становится четырьмя

Упакованный цвет — одно число, и прочитать его глазом нельзя. unpackcolor раскладывает его обратно на четыре канала.

тик 0
Информация0
=
у
Распаковать цвет1
= unpack
Операция2
=
Операция3
=
Операция4
=
Операция5
=
Операция6
=
Операция7
=
Печать8
Печать9
Печать10
Печать11
Печать12
Печать13
Вывод печати14
Стоп15
@counter0number
цветnullnull
крnullnull
зелnullnull
синnullnull
прозрnullnull

Программа спрашивает у меди её цвет и печатает его по каналам: на табло появится медь: 217 157 115.

sensor цвет @copper @color
unpackcolor кр зел син прозр цвет
Поле Что в нём
первые четыре куда положить красный, зелёный, синий и прозрачность
пятое упакованный цвет

Сам по себе разбор нужен редко — цвет обычно собирают, а не читают. Настоящее применение одно: узнать цвет, который придумали не вы.

  • цвет предмета, жидкости или блока — sensor @color, и дисплей рисует руду её собственным цветом;
  • цвет команды — sensor @color @crux, чтобы метки на карте совпадали по цвету с тем, что игрок видит вокруг;
  • цвет, пришедший из ячейки памяти или от соседнего процессора, который нужно чуть изменить — например, притушить, поделив каналы пополам, и собрать обратно.
unpackcolor кр зел син прозр цвет
op div кр кр 2
op div зел зел 2
op div син син 2
packcolor тусклый кр зел син прозр

Вот это и есть обычный порядок работы с цветом: разобрать, поправить каналы, собрать заново. Напрямую арифметикой упакованное число трогать нельзя.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.