Справка по цвету, фрагмент кода нуждается в объяснении

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

Затем они соответствуют другому цвету с помощью метода. Например. черный-зеленый, белый-красный и т. д.

В любом случае, я хотел использовать 5 цветов вместо 4, но я хотел понять это, так как это не было объяснено.

Код:

    public class Colours {


    public static int get(int colour1, int colour2, int colour3, int colour4, int colour5)      {
    return (get(colour4) << 24) + (get(colour3) << 16) + (get(colour2) << 8) + (get(colour1));
}

    private static int get(int colour)  {
        if(colour < 0)
            return 255;
    int r = colour / 100 % 10;
    int g = colour / 10 % 10;
    int b = colour % 10;
    return r * 36 + g * 6 + b;
}

static {
    Colours.get(555, 543, 542, 123);
}

Кто-то сказал мне, что это как-то связано с базами, в основном мне нужно знать, что означает код и как получить эти номера цветов, например. 542 = Цвет. Хотя какого цвета

Спасибо


person user2687097    schedule 25.11.2013    source источник
comment
Спросите парня, который дал вам этот фрагмент кода.   -  person Christian St.    schedule 25.11.2013
comment
Он неактивен уже как 3 месяца   -  person user2687097    schedule 25.11.2013


Ответы (1)


get(int color) Интерпретирует десятичное число как основание 6 и возвращает соответствующее целое число, где каждая цифра соответствует компоненту цвета в диапазоне от 0 до 5.

000 соответствует черному цвету, 555 — белому, 500 — красному, 50 — зеленому, 5 — синему и т. д.

get(int color1...) упаковывает четыре из них в 32-битное целое число. Невозможно упаковать более 4 x 8 бит в 32-битное целое число.

person Stefan Haustein    schedule 25.11.2013