IsoTile Koordinaten bei MouseOver

Bradley
Beiträge: 235
Registriert: 03.02.2013 19:05

IsoTile Koordinaten bei MouseOver

Beitragvon Bradley » 06.09.2016 16:27

Ich bin gerade etwas überfordert.
Ich habe eine IsoTilemap nach dem Muster im angehängten Bild.

Jetzt möchte ich das ich erreichen das ich das Tile Koordinate angegeben bekommen wenn du Maus darüber ist.
Ein einzelnes Tile hat dabei eine Länge von 62 und eine Höhe von 31. Habt ihr eine Idee wie man das umsetzten kann ?
B0TVn.png
B0TVn.png (8.33 KiB) 718 mal betrachtet

Benutzeravatar
NeoArmageddon
Beiträge: 1165
Registriert: 13.02.2012 20:34
Wohnort: Göttingen
Kontaktdaten:

Re: IsoTile Koordinaten bei MouseOver

Beitragvon NeoArmageddon » 08.09.2016 15:50

Siehe hier:

http://clintbellanger.net/articles/isometric_math/

Map zu Screen:

Code: Alles auswählen

creen.x = map.x * TILE_WIDTH_HALF - map.y * TILE_WIDTH_HALF;
screen.y = map.x * TILE_HEIGHT_HALF + map.y * TILE_HEIGHT_HALF;


und umgekehrt (durch umformen der Obigen Gl.):

Code: Alles auswählen

map.x = (screen.x / TILE_WIDTH_HALF + screen.y / TILE_HEIGHT_HALF) /2;
map.y = (screen.y / TILE_HEIGHT_HALF -(screen.x / TILE_WIDTH_HALF)) /2;


In deinem Fall musst du aber map.x und map.y vertauschen, da dein Nullpunkt links und nicht oben ist.

Zum Testen: Nehmen wir Punkt 280/32:
map.x = (280 / 31+ 32/ 15.5) /2 = 5.5;
map.y = (32/ 15.5-(280 / 31)) /2 = -3.4;

Von beiden der Betrag und der "Floor" ist die Koordinate 5/3. Passt. Die hab ich auf deinem Bild angeklickt (den Pixelursprung habe ich auf die 0/0 Ecke gelegt. Vergiss bei deinen Berechnungen nicht, das du die Pixel auf dem Bild vom Urpsrung aus abzählen musst.

Bradley
Beiträge: 235
Registriert: 03.02.2013 19:05

Re: IsoTile Koordinaten bei MouseOver

Beitragvon Bradley » 08.09.2016 22:48

Super, danke hat geklappt :)
Nächster Schritt fertig :)

SO_0.10.0_006.png


Zurück zu „MonoGame / XNA“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast