Skojarzenie wartości RGB z wartością enum

0

Chcę napisać prostą grę, w której edytorem mapy będzie zwykły edytor graficzny.
Typ pola na mapie będzie reprezentowany danym kolorem na mapie, np. 0xff0000 oznacza kamień, a 0x00ff00 drzewo itd.
Muszę w tym celu jakoś skojarzyć wartość koloru z typem obiektu.
O ile dobrze pamiętam w C++ można było zrobić to tak:

enum Przedmiot{
KAMIEN=0xff0000, DRZEWO=0x00ff00
}

a następnie

Przedmiot przedmiot=Przedmiot(0xff0000);

i w ten sposób kolory można ładnie skojarzyć z typami w grze.
Jak mogę zrobić coś podobnego w Javie?

Z góry dzięki za pomoc!

0

Niestety to nie to.
W tym przykładzie przypisują cenę do jabłka i mając jabłko mogą odczytać jego cenę.
W moim przypadku musi to działać odwrotnie - na podstawie przypisanej wartości (koloru) muszę rozpoznać typ obiektu.

0

a musi to być Typ wyliczeniowy akurat?
Może lepiej jakbyś zastosował interfejs Map...

0

Np. HashMap?
Rzeczywiście, to chyba rozwiązuje problem, dzięki :]

0

Zawsze można dodać metodę statyczną do enuma (enumy to i tak statyczne pola, więc nic to nie popsuje).

enum Przedmiot {

    Drzewo(0xff000000);

    Przedmiot(int wartość) {
        this.wartość = wartość;
    }

    public int getWartość() {
        return wartość;
    }

    public static Przedmiot dlaWartości(int wartość) {
        for (Przedmiot przedmiot : values()) {
            if (przedmiot.wartość == wartość) {
                return przedmiot;
            }
        }
        throw new RuntimeException("critical error: dupa overflow!");
    }
    private int wartość;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1