Registriert seit: 22. Dez 2003
544 Beiträge
Delphi 2006 Professional
|
[DelphiX] Iso-Engine von der Theorie zur Praxis
23. Jan 2004, 15:54
Hallo zusammen,
nachdem ich mich über Iso-Engines eingelesen habe, möchte ich solch eine nun mit DelphiX realisieren.
Welche Eigenschaften soll die Engine haben:
- Isometrische 2D-Engine
- multilayer (also mehrere Ebenen)
Hierzu habe ich folgende Fragen zur Umsetzung:
1. Da durch die multilayer-Eigenschaft die Spielfiguren auch z.B. hinter einem Objekt (Haus, Baum, etc.) verschwinden und bei z.B. Zäunen durchscheinen sollen, kann ich nicht direkt auf der DXDraw-Surface zeichnen, da ich ja verschiedene Z-Werte von "Hintergrund" und den Figuren-Sprites berücksichtigen muß.
2. Deshalb denke ich, dass ich den Background mit Sprites aufbauen muß. TBackgroundSprite fällt in meinem Fall aus, da es sich um Iso-Tiles handelt und dieser nur rechteckige "Chips" zulässt.
3. Aus diesem Grund bin ich jetzt bei TImageSprites angelangt, die ich selbst zeichne, bzw. deren Koordinaten ich entsprechend der Scrollrichtung (Himmelsrichtungen) verändere.
Bin ich hiermit erstmal überhaupt auf der richtigen Fährte oder gar ganz auf dem falschem Dampfer?
Wenn das soweit OK sein sollte, habe ich mir nun folgendes gedacht:
- da ich bei einer Spielfläche von z.B. 1000x1000 Tiles á 64x32 Pixel nicht 1.000.000 Sprites erstellen will, zeichne ich nur soviel Sprites, wie nötig sind, den Bildschirm zu füllen plus 1-2 Pufferreihen an jeder Seite.
- wenn jetzt das Spielfeld 64 Pixel in eine Richtung gescrollt wurde, "swappe" ich die aktuellen Bilder des Map-Arrays in die am Bildschirm angezeigten Sprite und setze sie wieder um 64 Pixel zurück - es wird als0 tatsächlich immer nur maximal 64 Pixel in X-Richtung und 32 Pixel in Y-Richtung gescrollt und dann werden die eigentlich neu kommenden Tiles in der Sprite-Matrix ersetzt und diese wieder um 64 bzw. 32 Pixel zurückgesetzt.
Ist das ein "guter" Ansatz, um die Theorie zu realisieren?
Bin für alle Umsetzungstips dankbar!
Gruß Kay
|