-
Ehrengarde
Frage Pixelmovement Kollisionsabfrage
Guten Abend.
Ich habe einmal mehr eine Frage bezüglich der Kollisionsabfrage eines Pixelmovement Scriptes welches ich selbst geschrieben habe.
Bisher habe ich für jedes Tileset (Bilddatei) eine weitere Bilddatei erstellt welche lediglich zwei Farben aufwies: Schwarz und Weiß.
Schwarz stellt nicht passierbare Stellen des Tilesets dar und Weiß passierbare.
(Vergleich)
Im Spiel habe ich nun einfach bei der Bewegung den entsprechenden Abschnitt der Map auf welchen sich mein Objekt bewegen wollte mit der Schwarz/Weißen "Pathing Map" nachgebildet und darüber verglichen ob der zu betretende Pixel begehbar ist oder nicht.
Ich kam auf den Gedanken ob dies nicht eine recht ineffiziente Methode sei, es boten sich mir folgende Argumente:
1). Es verbraucht mehr Speicherplatz für jedes Tileset eine Pathing Map ab zu speichern.
2). Es muss für jede kleine Bewegung eigens eine Bitmap Datei angelegt werden auf welcher der Ausschnitt (32x32 Pixel) auf welchem sich das Objekt bewegt in der Pathing Map nach modeliert wird.
Dies braucht nicht nur ein Sprite sondern auch 3 block transfers für alle 3 Layer des Bitmaps. (Falls sich natürlich bereits im ersten Layer entpupt, dass besagte Stelle unpassierbar ist werden die folgenden beiden Layer nicht mehr geprüft)
Ich habe daher eine neue Idee gehabt wie ich die Abfrage vielleicht effektiver machen könnte. Statt einer Pathing Map benutze ich eine Tabelle welche die Werte 1 = Passierbar und 2 = Unpassierbar für jede mögliche X/Y Koordinate speichert.
Ich habe mich direkt darangesetzt und es getestet, allerdings bin ich mir nicht ganz sicher ob die Ergebnisse das hervorbrachten was ich gehofft habe.
bereits für eine kleine 20x15 große Map ist die gespeicherte Tabelle 600kb groß (ich habe sie direkt in die Map Datei speichern lassen).
Ist diese Methode eine Tabelle statt der Bilddatei zu verwenden effektiver? 600kb sind im vergleich zu meinem 512kb großem Projekt ziemlich gigantisch. Wenn ich für jede weitere Map jeweils nocheinmal 600+ kb benötige expandiert die Größe enorm.
Danke.
Cornix.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln