Ich habe eine Schulaufgabe, bei der ich eine 2D-Karte aus einem der ersten Zelda-Spiele zusammen mit einigen animierten Sprites zeichnen muss. Jetzt habe ich die Sprites zum Laufen gebracht. Ich habe Probleme beim Zeichnen der Karte. So sollte es aussehen:
Dies ist das TileSet, mit dem wir die Karte zeichnen müssen (jede Kachel hat eine Größe von 32 x 32 Pixel):
Wir arbeiten in einer benutzerdefinierten Spiel-Engine, die unser Lehrer für uns erstellt hat.
Um eine Bitmap zu zeichnen, verwenden wir diesen Befehl: GAME_ENGINE.DrawBitmap ([Name], x.cord (auf der Leinwand), y.cord (auf der Leinwand), x.cord (auf dem Tileset), y.cord (auf der Leinwand) Kachelsatz), Anzahl der Pixel, die Sie aus dem Kachelsatz ausschneiden möchten (Breite), Anzahl der Pixel, die Sie aus dem Kachelsatz ausschneiden möchten (Höhe).
Wenn ich diesen Befehl verwende, würde ich die Treppenkachel (oben links) auf die Leinwand zeichnen: GAME_ENGINE.DrawBitmap ([Name], 200, 200, 0, 0, 32, 32);
Also fand ich heraus, dass man mit einer verschachtelten for-Schleife eine 2D-Karte auf die Leinwand zeichnen kann. Dies ist der Code, den ich dafür verwendet habe:
for (int y = 0; y < 10; y++)
{
for (int x = 0; x < 16; x++)
{
GAME_ENGINE.DrawBitmap(Link_Level, 128 + (x * 32), 0 + (y * 32), 0, 0, 32, 32);
}
}
Aber offensichtlich zeichnet es dann eine 16 x 10 Karte, die nur aus einem Plättchen besteht.
Meine Frage ist: Wie kann ich dasselbe für die Schleife verwenden, aber irgendwie wissen lassen, welche Kacheln an der richtigen Position gezeichnet werden sollen?
Jede Hilfe wäre dankbar!