Ergebnis 1 bis 13 von 13

Thema: 2 Probleme mit der eigenen Tilemap

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    2 Probleme mit der eigenen Tilemap

    Schönen guten Abend,
    erneut wage ich es die lieben Leute dieser Internet-Gemeinschaft mit bohrenden Fragen zu durchlöchern.

    Dieses Mal habe ich mir Gedanken zu einer eigenen Umsetzung einer art Tilemap gemacht. Das Problem mit dem RMXP ist, dass ein einzelnes Tile der angezeigten Karte nicht einfach ausgetauscht werden kann, ganz zu schweigen von Auto-Tiles welche wohl noch viel unmöglicher ersetzt werden können.

    Wie schon so oft zuvor ist es nicht direkt die Umsetzung mit welcher ich Probleme habe sondern interessieren mich an dieser Stelle Fragen zu Performance und Effektivität meiner kleinen Kreation.
    Ich bitte hiermit um Kritik, Anregungen und Vorschläge zu folgenden beiden Problemstellungen:

    1). Das Speichern der einzelnen Tiles.
    Die Karte ist zweidimensional, jedes Tile soll eine eigene Instanz einer Klasse darstellen.
    Um ein Tile zu speichern sind mir persönlich zwei Methoden eingefallen,
    A). Ich erstelle ein Array (Als Zeile, für die X-Achse) in welchem ich weitere Arrays (jeweils für eine Spalte, Y-Achse) speichere.
    Diese weiteren Arrays wiederum beinhalten die einzelnen Tiles.
    Als Beispiel:
    Code:
    Tilemap = []
    for i in 0...@map.width
      row = []
      for j in 0...@map.height
        row.push(Tile.new)
      end
      Tilemap.push(row)
    end
    Angesprochen wird das ganze wie folgt:
    Code:
    local_tile = Tilemap[x][y]
    und würde ein Tile liefern.

    und B).
    Ich erstelle ein einzelnes Array welches jedes Tile speichert.
    Zusätzlich erstelle ich eine zweidimensionale Tabelle, in dieser Tabelle speichere ich, passend zu X- und Y-Koordinate den Index des zugehörigen Tiles innerhalb des Arrays.
    Will ich also das Tile mit den Koordinaten (3,5) erhalten müsste ich folgendes tuen:
    Code:
    tile = Array[Table[3,5]]
    Da die Tabelle des RPG-Makers nur ganze Zahlen speichern kann.

    Problem 2).
    Um eigene Auto-Tiles richtig darstellen zu können muss ich die einzelnen 32*32 Sprites in vier gleiche Teile teilen.
    Je nach der Umgebung des besagten Tiles muss jede 16*16 Pixel große Ecke passend verändert werden.
    Ich dachte zuerst daran für jedes Tile ein neues Bitmap zu erstellen und anschließend einen Blocktransfer pro Ecke durch zu führen allerdings habe ich erst vor kurzem gelesen, dass der RPG-Maker seine Probleme damit besitzt falls zu viele Bitmaps erstellt werden. Grundsätzlich sei es sehr uneffektiv neue Bitmaps zu erstellen um diese dann mit dem Inhalt anderer Bitmaps zu füllen.

    Die einzige Alternative welche ich dazu sehe, wäre es anstatt einem nun vier Sprites pro Tile zu verwenden.
    Zugegebener Maßen würde ich dadurch kein einziges unnötiges Bitmap erstellen müssen allerdings würden sich meine Spritezahlen vervierfachen.
    Was soll ich tuen?


    Soweit dazu, vielen Dank für eure Aufmerksamkeit, ich freue mich auf jeden Kommentar.
    Cornix.

    Geändert von Cornix (29.06.2010 um 21:40 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •