Ich habe ein großes Problem, da ich versuche herauszufinden, wie ich eine Variable in einer überschriebenen Methode verwenden und auch in einer anderen Methode verwenden kann. Konkret verwende ich libgdx und möchte die Variable map
sowohl in der Methode create
als auch in der Methode render
verwenden.
Hier ist mein Code:
@Override
public void create() {
batch = new SpriteBatch();
background = new TextureAtlas(
Gdx.files.internal("data/background/background.pack"),
Gdx.files.internal("data/background/"));
bg = background.findRegion("Background");
t = TMXLoader.readTMX("data/world/World.tmx");
ArrayList map = TMXLoader.drawMap();
camera = new OrthographicCamera(WIDTH, HEIGHT);
camera.position.set(WIDTH / 2, HEIGHT / 2, 0);
camera.update();
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
BufferedImage image = new BufferedImage(20, 20,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D) image.getGraphics();
batch.begin();
for (int i = 0; i < WIDTH; i += bg.getRegionWidth()) {
for (int j = 0; j < HEIGHT; j += bg.getRegionHeight()) {
batch.draw(bg, i, j);
}
}
for (int x = 0; x < t.width; x++) {
for (int y = 0; y < t.height; y++) {
for (Image tile : map) {
float[] scale = getScale();
Image scaledTile = tile.getScaledInstance(
(int) (t.tilewidth * scale[0]),
(int) (t.tileheight * scale[1]), Image.SCALE_FAST);
g2d.drawImage(scaledTile, x, y, null);
}
}
}
batch.end();
}
Wie es jetzt ist, kann ich nicht auf map
in der render
Methode zugreifen. Ich kann keine eigene Methode erstellen, da sie in jeder Methode create
und render
aufgerufen werden müsste. Ich stecke fest und kann es alleine nicht herausfinden. Ich habe das Gefühl, dass ich ein get/set verwenden könnte, um dies zu erreichen, aber ich bin mir nicht ganz sicher, wie ich das versuchen sollte...