So speichern Sie eine 2D-Kachelkarte

7

Ich mag eine 2D - Karte erstellen von kleinen Kacheln zusammengesetzt, die wie Voxel aussehen sollten (z. B. das gerade von dieser Seite).

Ich denke, ich kann eine Struktur wie Voxel2D erstellen, die int X, Y und etwas Farbe hat, und jedes Voxel2D wird 5x5 Pixel groß sein (also multiplizieren Sie X und Y beim Zeichnen mit 5).

Aber wie soll ich jetzt die ganze Karte speichern? Oder gibt es in einem 2D-Array wie der klassischen Tile-Map einen schnelleren Weg?

Davidv
quelle
6
Voxel in 2D? .. Weißt du was, sie heißen Pixel.
Nevermind
Ja, ich weiß, aber ich wollte den Grafikstil beschreiben, den ich erreichen möchte, und wenn Sie sich dieses Video ansehen (und ich hoffe, es besteht aus Voxeln), sind sie nicht 1x1x1 Pixel groß, aber etwas größer.
Davidv
1
2D-Blöcke, die größer als Pixel sind, werden als Kacheln bezeichnet.
aaaaaaaaaaa
Ich denke, er meint eine isometrische 2D-Ansicht mit Höhen (wie Snake Rattle n Roll oder Marble Madness )
BlueRaja - Danny Pflughoeft

Antworten:

3

Sie würden es nicht Voxel nennen, wenn es 2D ist, es ist nur kachelbasiert. Array-Speicher sollte das sein, wonach Sie suchen.

Bearbeiten: Ich frage mich, ob Ihre Frage mehr enthält als ich gelesen habe, und ich verstehe nicht wirklich, warum Sie ein 3D-Spiel wählen, um Ihre Idee zu erklären. Möchten Sie nur sicher sein, dass Sie in die richtige Richtung arbeiten, oder gibt es etwas, das Sie nicht implementieren können?

aaaaaaaaaaaa
quelle
Wie eBusiness sagt, ist ein Array die beste Wahl, aber Sie sollten Ihre Karte in kleinere Blöcke aufteilen (z. B. einen Block pro Bildschirm) und jeden Block nur laden, wenn dieser Bereich auf den Bildschirm gezeichnet werden muss. Dies ist speicherfreundlicher, wenn Sie mit großen Karten und vielen Attributen pro Kachel arbeiten.
Geist
0

Sie können auch 2 Arrays anstelle eines verwenden, wobei eines als Kartenarray "Kacheln" enthält und eines ein Kachelarray mit vordefinierten Pixeln (5 x 5 oder weniger) ist. Bei Bedarf können Sie diese Pixel noch ändern, müssen jedoch ein neues erstellen Kachel-Array statt eines vordefinierten.

Das Gute daran ist, dass die nicht modifizierten als Bildkacheln vordefiniert werden können, bis sie aufgelöst werden.

Beachten Sie jedoch, dass das Worst-Case-Szenario dasselbe ist wie nur ein Array voller Pixel.

adrix89
quelle