Hallo zusammen
ich schreibe gerade einen Leveleditor für eine Tileengine in Java und bin dabei auf folgendes Ärgerniss gestossen: Pro Level und Layer kann es maximal 256 verschiedene Tiles geben, so dass sich die entsprechenden Indices sehr gut in einem Byte speichern lassen würden. Das Problem ist aber nun, dass Java ja keine unsigned variablen kennt. Mit anderen Worten, sobald ich ein Tile mit einem höheren index als 127 in dem Tilearray indizieren will, wird eine ArrayOutOfBoundsException geworfen, weil diese ja durch das 2er - Komplement in eine negative Zahl umgewandelt wird. Meine Frage ist nun, wie begegnen die Profis diesem Problem in Java?
Mfg Ishildur
P.S.
Natürlich habe ich mir bereits überlegt, einfach den nächst höheren Datentyp zu verwenden, allerdings müssen die Indizes ja später in der Leveldatei trotzdem als unsigned byte gespeichert werden.
ich schreibe gerade einen Leveleditor für eine Tileengine in Java und bin dabei auf folgendes Ärgerniss gestossen: Pro Level und Layer kann es maximal 256 verschiedene Tiles geben, so dass sich die entsprechenden Indices sehr gut in einem Byte speichern lassen würden. Das Problem ist aber nun, dass Java ja keine unsigned variablen kennt. Mit anderen Worten, sobald ich ein Tile mit einem höheren index als 127 in dem Tilearray indizieren will, wird eine ArrayOutOfBoundsException geworfen, weil diese ja durch das 2er - Komplement in eine negative Zahl umgewandelt wird. Meine Frage ist nun, wie begegnen die Profis diesem Problem in Java?
Mfg Ishildur
P.S.
Natürlich habe ich mir bereits überlegt, einfach den nächst höheren Datentyp zu verwenden, allerdings müssen die Indizes ja später in der Leveldatei trotzdem als unsigned byte gespeichert werden.