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 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