Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Tile Map und Komponenten
Terra - Sa 20.07.13 15:37
Titel: Tile Map und Komponenten
Moin !
Ich möchte gerne in mein Projekt eine Karte erstellen, die aus mehreren gleichmäßigen Einzelbildern besteht (Quadrate). Allerdings sollen nachträglich auf der Karte bestimmte Positionen markiert bzw. angezeigt werden. Im Grunde nichts anderes als bei Google Maps. Da ich bereits viel gesucht habe aber nichts dergleichen gefunden habe, würde es mich interessieren, wie ihr es anstellen würdet. Würdet ihr dazu eine kleine 2D Engine nutzen oder rein mit den am bord befindlichen Komponenten bewerkstelligen können?
Die Karte soll natürlich später auch mit der Maus bewegt und gezoomt werden können. Darunter auch Punkte ausgewählt und bestimmt werden.
Bin z.Z. ein bissel Hilflos und weiß nicht, wie ich bei der Sache anfangen soll.
Vielleicht könnt ihr mir ja paar Tips geben. (Möchte kein fertiges Projekt hier hingestellt bekommen)
Also, welche Komponenten kämen für sowas in frage um es recht einfach zu halten?
Liebe Gruß,
Terra
Hidden - Sa 20.07.13 16:47
Hallo Terra,
ohne viel mit 2D-Engines gearbeitet zu haben: schwerpunktmäßig geht es dabei doch um Kollisionsabfragen und bewegte Objekte. Ist das für ein Kartenprogramm wirklich nützlich?
Ich würde ein einfaches Zeichen-Interface für deine eingelesenen Daten und Bilder in einer separaten Unit implementieren, sodass du es später mit vertretbarem Aufwand austauschen kannst. Wichtig ist erst einmal, dass ein kleiner Teil läuft und du Änderungen am laufenden Programm testen kannst.
Man nehme:
- eine TPaintbox
- Eine TBitmap als Buffer zum Zwischenzeichnen. Diese sollte um einen verstellbaren Faktor größer sein als der am Ende sichtbare Bereich, damit beim Scrollen die Daten schon vorgeladen sind und nicht erst generiert oder gelesen werden müssen.
- Eine Methode zum neu-Zeichnen der Buffer-Bitmap. Diese kann mit einem optionalen Parameter im Hintergrund ausgeführt werden, sodass während des Scrollens weitere Kartenbereiche nachgeladen werden können.
Das Scrollen würde ich vor dem Zoomen implementieren.
Mein
Minesweeper-Klon [
http://www.entwickler-ecke.de/viewtopic.php?t=111763] funktioniert so, auch wenn er über ein einfaches Demo-Projekt wohl schon ein bisschen hinaus ist kannst du gerne fragen wie ich xyz darin implementiert habe. :)
Grüße,
Daniel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!