Помощ за цвета, кодовият фрагмент има нужда от обяснение

По принцип се занимавах с изобразяване на sprtiessheets и този човек даде урок, в който листът със злоба използва 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 = aЦвят. Какъв цвят обаче

Благодаря


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