Witam. Piszę klase MapSingle1 to prostej gry 2D.Potrzebuję pomocy przy "rysowaniu" danego obrazka w danym kafelku.
Tutaj kod:
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.Image;
public class Map {
private static final int CLEAR = 0;
private static final int BLOCKED = 1;
private static final int GRASS = 2;
private static final int WATER = 2;
private static final int SAND = 2;
private static final int GRASAN = 2;
private static final int WATSAN = 2;
private static final int WIDTH = 1000;
private static final int HEIGHT = 1000;
public static final int TILE_SIZE = 32;
private int[][] data = new int[WIDTH][HEIGHT];
public Map() {
for (int y=0;y<HEIGHT;y++) {
data[0][y] = BLOCKED;
}
for (int x=0;x<WIDTH;x++) {
if ((x > 0) && (x < WIDTH-1)) {
data[x][10] = CLEAR;
}
if (x > 2) {
data[x][9] = BLOCKED;
}
data[x][0] = BLOCKED;
data[x][HEIGHT-1] = BLOCKED;
}
data[4][9] = GRASS;
}
public void paint(Graphics2D g) {
for (int x=0;x<WIDTH;x++) {
for (int y=0;y<HEIGHT;y++) {
if (data[x][y] == GRASS) {
Image grass = Toolkit.getDefaultToolkit().getImage("grass.png");
g.drawImage(grass, 0, 0, null); // <<<<<========
}
g.fillRect(x*TILE_SIZE,y*TILE_SIZE,TILE_SIZE,TILE_SIZE);
g.drawRect(x*TILE_SIZE,y*TILE_SIZE,TILE_SIZE,TILE_SIZE);
}
}
}
public boolean blocked(float x, float y) {
return data[(int) x][(int) y] == BLOCKED;
}
}
A więc, jeśli np. data[4][9] = jest równa GRASS chcę aby został narysowany obrazek grass.png w punkcie 0,0 konkretnego kafelka! (a nie w punkcie 0, 0 ogólnym)
if (data[x][y] == GRASS) {
Image grass = Toolkit.getDefaultToolkit().getImage("grass.png");
g.drawImage(grass, 0, 0, null); // <<<<<========
Powyżej w zaznaczonym wierszu ma być rysowanie, lecz jak już wspomniałem nie wiem jak wskazać punkt 0,0 kafelka oraz jaki obiekt ma rysować kafelek.
Pozdrawiam i liczę na pomoc
Skatty