Das kann bei der momentanen implementierung nicht passieren , da ich die Tiles so groß zeichne das sie genau in das Spielfeld passen, später wenn die map dann noch scrollbar wird hast du natürlich vollkommen recht.
meine map besteht zzt. nur aus einem int[][] welches pro feld nur entweder 0 oder 1 enthält, also sollte ich doch hergehen und lieber mit einer separaten klasse arbeiten und dann die map in einem
Tile[][] array kapseln ? so könnte ich zumindest jedem Tile koordinaten zuweisen , so wie es momentan ist ja nicht .
So sieht die klasse TileMap momentan aus, [code]hier sind die x und y koordinaten noch nicht genutzt, getter und setter sind dementsprechend noch nicht implementiert[/code] :
[SPOILER="TileMap.java"][code=Java]
import java.awt.Color;
import java.awt.Graphics;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TileMap {
int x;
int y;
int width;
int height;
int tileSize;
int[][] map;
public TileMap(String path, int tileSize) {
this.tileSize = tileSize;
InputStreamReader in;
BufferedReader br;
try {
in = new InputStreamReader(getClass().getResourceAsStream(path));
br = new BufferedReader(in);
width = Integer.parseInt(br.readLine());
height = Integer.parseInt(br.readLine());
map = new int[height][width];
for (int row = 0; row < height; row++) {
String line = br.readLine();
String[] tokens = line.split("\\s+");
for (int col = 0; col < width; col++) {
map[row][col] = Integer.parseInt(tokens[col]);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void update(){
}
public void draw(Graphics g){
for (int row = 0; row < map.length; row++) {
for (int col = 0; col < map.length; col++) {
int rc = map[row][col];
if (rc == 0) {
g.setColor(Color.BLACK);
}
if (rc == 1) {
g.setColor(Color.WHITE);
}
g.fillRect(col * tileSize, row * tileSize, tileSize, tileSize);
}
}
}
}
[/code][/SPOILER]
[EDIT]So wie es jetzt ist könnte ich eine Kollision ja nur abfragen indem ich jedes Pixel abfrage ob es WEIß oder SCHWARZ ist , oder sehe ich das Falsch ?[/EDIT]