Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Minimap (http://www.informatikerboard.de/board/thread.php?threadid=3649)


Geschrieben von Tommy1234 am 08.07.2017 um 16:14:

  Minimap

Hallo,

kurze Frage:

Habe eine TileMap 50x100 mit 32x32 großen Kacheln und eine Minimap erstellt.
Nun möchte ich ein sichtbares weißes Rechteck auf die Minimap zeichnen, das den momentan-sichtbaren Bereich des Spielfeldes wiedergibt und natürlich scrollbar ist. Nach vielem hin und herrechnen ist mir das nicht gelungen. Außerdem beabsichtige ich noch, dass bei Klick auf die Minimap der Bereich des Spielfeldes angezeigt wird auf den ich geklickt habe.



Geschrieben von as_string am 09.07.2017 um 00:01:

 

Du hast also insgesamt 1600x3200 Pixel? Wie groß ist Deine Minimap und wieviele Kacheln kannst Du darstellen?

Gruß
Marco



Geschrieben von Tommy1234 am 09.07.2017 um 07:57:

 

Ich kann beliebig viele Kacheln darstellen und die Minimap wird um den Faktor 2 skaliert.



Geschrieben von Tommy1234 am 09.07.2017 um 08:52:

 

Die Minimap ist 50x100 Pixel.



Geschrieben von as_string am 09.07.2017 um 08:58:

 

Faktor 2? Du meinst Deine Minimap ist halb so groß, wie die originale? Macht man da nicht große Faktoren normalerweise?
Also allgemein hast Du ja Weltkoordinaten, die für alle Darstellungen gültig sind. Du kannst ja die x-Koordinate des momentan dargestellten linken Rands berechnen. Wenn Du gerade die dritte Kachelreihe ganz links darstellst, sind zwei nicht zu sehen, also ist der linke Rand in Weltkoordinaten bei 64. Oder, wenn Du nicht immer ganze Kacheln darstellst, dann musst Du noch zu den 64 die Anzahl von Pixeln dazu addieren, die von der dritten Kachel am linken Rand noch zusätzlich abgeschnitten sind.
Diese Weltkoordinate musst Du in Minimap-Koordinaten umrechnen. Wenn Du das Skalierungsverhältnis zwischen Original und Minimap kennst, musst Du dann ja einfach durch diese Faktor teilen (oder multiplizieren, falls Du den Kehrwert Dir merkst).

Allerdings verstehe ich aus Deiner Beschreibung noch nicht so ganz, wo genau Du überhaupt hängst. Kannst Du nicht vielleicht irgendwie zeigen, was Du schon hast und was genau falsch funktioniert oder gar nicht?

Gruß
Marco


Forensoftware: Burning Board, entwickelt von WoltLab GmbH