Ergebnis 1 bis 14 von 14

Thema: Frage Pixelmovement Kollisionsabfrage

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #6
    Zitat Zitat
    Ich denke die erste Funktion ist definitiv mit weniger Arbeit verbunden.
    Überzeugt mich nicht so recht. Hast du denn mal getestet ob das wirklich die Performance runterreißt?

    Zitat Zitat
    Gibt es nicht eine Möglichkeit die Tabelle zu komprimieren und nur jeweils diejenige Tabelle zu dekomprimieren welche gerade benötigt wird?
    Zum Beispiel wird die Tabelle als String oder Zahl mit WIDTH*HEIGHT Ziffern gespeichert und durch besondere Verfahren komprimiert und beim Betreten der jeweiligen Karte dann einmalig geladen und dekomprimiert.
    Ich habe doch schon Code für eine BitTable-Klasse geschrieben. Die speichert jeden Tabelleneintrag in ein Bit ab. Für eine 500x500 Map bräuchtest du also nur noch 30 Megabyte, statt 488, wie bei einer Table, oder gar 976 Megabyte, wie bei einem Bitmap.

    Zum Komprimieren in eine Datei verwendest du einfach die Zlib Library.
    Hier mal als Beispiel für meine BitTable2D Klasse
    Code:
    class BitTable2D
      def _dump depth
        compress << [@width, @height].pack("NN")
      end
      def self._load str
        object = allocate
        object.instance_eval do
          @width, @height = str.slice!(-8, 8).unpack("NN")
          @data = decompress(str)
        end
        object 
      end
      private
      def compress
        Zlib::Deflate.deflate(@data)
      end
      def decompress(data)
        Zlib::Inflate.inflate(data)
      end
    end

    Geändert von -KD- (13.08.2010 um 22:24 Uhr)

Berechtigungen

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