Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
674 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Das Laden eines Levels dauert zu lange

  Alt 20. Jan 2004, 12:46
Meiner Meinung nach solltest Du Dich von Text-Dateien verabschieden, die bringen nichts. Speicher es doch binär.

Nehmen wir mal an, Du möchtest ein Feld 1000*1000 nehmen. das wäre bei Byte-Werten ja man grade mal 1 MB im Speicher. Nun sind 256 Möglichkeiten recht wenig. Also nehmen wir mal ein Word. Das sind 2 MB im Speicher. Dauert nur millisekunden, die einzuladen und Du hast einen direkten Zugriff auf jedes Element. Einfach das entsprechende Quadrat berechnen : Y * Höhe + X. Da Du allerdings mehrere Layer brauchst, machst Du das einfach für jede Ebene, die Du erstellst. 1. Ebene wäre für die Bodentextur (Gras, Straße etc.). 2. Layer für Objecte darauf, die sagen wir mal, dynamisch sind und von der 3. Ebene teils oder ganz verdeckt werden sollen beim zeichnen (z.B. geht Deine Ost-Wand auf dem Bild über die Boden-Textur drüber). Genau in dieser Reihenfolge renderst Du auch. Da hast Du 6 MB Speicher-Verbrauch bei 3 Layer und ist innerhalb einer Sekunde geladen

Achja, und in jedes Word schreibst Du einfach eine Textur-ID rein. Zum Anzeigen würde ich die Maximal ClientRect-Größe in Tiles nehmen plus je 2 Reihen in jede Richtung. Je nachdem, wohin der Actor geht wird entsprechend nachgeladen und die jeweilige Gegenseite aus dem Speicher entfernt.

LG, MyRealName
  Mit Zitat antworten Zitat