Pixelweise Tiles-location herausfinden?

Status
Nicht offen für weitere Antworten.

Schnitter

Bekanntes Mitglied
Hi,

ich habe eine Map-Klasse, die aus einzelnen Tiles besteht. Dazu habe ich ein 2D-Array.
Mein Screen ist 1024x768px groß, was bei Tiles von 32x32px größe 32x24 Tiles wären.

Ich versuche also das Tile an Maus-Position so herauszufinden:

tileX = (int)(Mouse.getX()/32);
tileY = (int)(Mouse.getY()/24);

funktioniert auch...zumindest im niedrigeren Bereich. Wenn ich an den unteren Bildschirmrand gehe, wird das Ergebnis noch nicht verfälscht(klar).

Aber wenn ich mit der Maus weiter nach oben gehe, verschiebt sich das ergebnis auch immer weiter nach oben - aber auch immer wwiter vom Mauszeiger weg!

Naja - und da liegt auch schon das Problem.

Wie löse ich das/Gibt es auch bessere Ansätze?



MfG
 

Marco13

Top Contributor
tileY = (int)(Mouse.getY()/24);

public void refreshLocations(){
....
tiles[x][y].setLocation((x*32f)+16f, (y*32f)+16f);

Das passt (soweit ich das nach einem kurzen Überfliegen beurteilen kann) nicht zusammen. Bei
tileY = (int)(Mouse.getY()/24);
sollte nicht durch die Anzahl der Tiles getile..teilt werden, sondern durch ihre Größe in Y-Richtung. Wenn man davon ausgeht, dass die Tiles 32x32 groß sind, sollte es wohl
tileY = (int)(Mouse.getY()/32);
heißen... Oder besser gleich
private static final int TILE_SIZE_Y = 32;
...
tileY = (int)(Mouse.getY()/TILE_SIZE_Y);
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben