Auf Thema antworten

Ich hätt' da ja 'ne Idee für die Blocks... enum, dann brauchst du erstens kein Array mehr, musst zweitens nicht mehr auf die Indices achten, wenn du neue hinzufügst, drittens erledigt sich eine "Can't override Block x with Block y"-Fehlermeldung dadurch auch noch. 4. Wenn man's geschickt anstellt, bekommt man's auch noch lokalisiert.

[code=Java]public LocalizedBlocks{

  private static final ResourceBundle bundle = ResourceBundle.getBundle("Blocks");


  public enum Block {

    DIRT(2),

    GRASS(3),

    STONE(1),

    ;


    private static final int SIZE = 50;


    private final BufferedImage texture;

    private final String localName;


    private Block(int textureId) {

      this(String.valueOf(textureId));

    }


    private Block(String textureName) {

      try {

        texture = ImageIO.read(getClass().getResourceAsStream(texture));

        localName = bundle.getString(name());

      } catch(Exception ex) {

        Logger.getLogger(Block.class.getName()).log(Level.SEVERE, null, ex);

      }

    }


    public String toString() {

      return localName;

    }

  }

}[/code]

passende Lokalisierungsdatei für deutsch (Blocks.properties):

[CODE]DIRT=Dreck (Okay... dann eben Erde... ;) )

GRASS=Gras

STONE=Stein[/CODE]



Oben