hi folks,
mich würde mal interessieren wie ihr eigentlich eure sprites & sounds verwaltet, um die übersicht zu bewahren und euch das handling zu vereinfachen.
was habt ihr für erfahrungen gemacht, mit eurer vorgehensweise?? was habt ihr daraus gelernt und was würdet ihr für eure nächsten projekte besser bzw. anders machen??
c ya,
nco2k
Sprite- & Soundverwaltung
Sprite- & Soundverwaltung
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Bei mir ist es zwar nicht immer genau gleich, aber so vom Prinzip her mach ich es so:
Ich definier mir ein paar Konstanten, z.B.
Dann lade ich die entsprechenden Sprites an den Wert der entsprechenden Konstante + dem Zähler der Ladeschleife, also wenn ich z.B. 30 Wand-Sprites hab, haben diese die Nummern 500 bis 529. Nun kann ich z.B. eine Map entsprechend zeichnen:
Natürlich brauch ich zwischen Wänden und Böden nicht bei jedem Spiel unterscheiden, aber bei meinem momentanen ist das von Vorteil. Ansonsten würd ich da natürlich alles unter #Tile zusammenfassen oder so.
Manchmal gibt es auch Sprites, die indirekt mit anderen Sprites zu tun haben. Dort achte ich dann bereits beim Abspeichern darauf, daß sie z.B. die gleiche Nummer haben, dann kann ich beispielsweise einmal mit #Wall+Spritenummer und einmal mit #Floor+Spritenummer zugreifen, sofern erwünscht.
In meinem derzeitigen Projekt gibt es z.B. Objekte, die unter bestimmten Umständen zu einem Tile umfunktioniert werden müssen. Da ist es dann sehr hilfreich, wenn beide zwar verschiedene "Offsets" (durch die Konstanten) haben, aber relativ gesehen wieder die gleiche "Seriennummer"
---
In einem früheren Projekt waren die Level-Daten übrigens mit ganz normalen ASCII-Codes abgespeichert, vorzugsweise Zahlen und Buchstaben. Da hab ich es dann so gemacht, daß die einzelnen Tiles die jeweiligen ASCII-Codes als Nummer hatten...
Würd mich aber auch mal interessieren, wie das andere machen. Vielleicht gibt's da einige geschicktere Möglichkeiten... bzgl. Sounds hab ich bisher übrigens noch nie so viele drin gehabt, als daß ich da besonders auf die Verwaltung hätte achten müssen, daher kann ich dazu jetzt nix sagen...
Ich definier mir ein paar Konstanten, z.B.
Code: Alles auswählen
#Wall = 500
#Floor = 1000
#Object = 1500
#Person = 2000
Code: Alles auswählen
DisplaySprite(#Wall+walls(x,y),x*32,y*32)
Manchmal gibt es auch Sprites, die indirekt mit anderen Sprites zu tun haben. Dort achte ich dann bereits beim Abspeichern darauf, daß sie z.B. die gleiche Nummer haben, dann kann ich beispielsweise einmal mit #Wall+Spritenummer und einmal mit #Floor+Spritenummer zugreifen, sofern erwünscht.
In meinem derzeitigen Projekt gibt es z.B. Objekte, die unter bestimmten Umständen zu einem Tile umfunktioniert werden müssen. Da ist es dann sehr hilfreich, wenn beide zwar verschiedene "Offsets" (durch die Konstanten) haben, aber relativ gesehen wieder die gleiche "Seriennummer"
---
In einem früheren Projekt waren die Level-Daten übrigens mit ganz normalen ASCII-Codes abgespeichert, vorzugsweise Zahlen und Buchstaben. Da hab ich es dann so gemacht, daß die einzelnen Tiles die jeweiligen ASCII-Codes als Nummer hatten...
Würd mich aber auch mal interessieren, wie das andere machen. Vielleicht gibt's da einige geschicktere Möglichkeiten... bzgl. Sounds hab ich bisher übrigens noch nie so viele drin gehabt, als daß ich da besonders auf die Verwaltung hätte achten müssen, daher kann ich dazu jetzt nix sagen...
@Zaphod
c ya,
nco2k
könntest du das etwas näher erläutern und uns ggf. ein (pseudo-)beispielcode zeigen.bei größeren programmen ist mir das aber nicht flexibel genug, da lese ich die pfade zu den grafiken über textdateien ein und mach die verwaltung dynamisch.
c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
naja, ich schreibe die pfade in eine textdatei. diese lese ich zeile für zeile aus und benutze den string zum laden eines sprites. die zeilennummer ist dabei die sprite id. so kann man schnell sprites austauschen.
besonders praktisch ist das für tilemaps, da speichere ich dann nurnoch ein feld aus zahlenwerten, die die entsprechende sprite id darstellen.
damit ich weiß, welche die höchste sprite id ist, die ich ansprechen darf, zähle ich noch in einer globalen variable mit.
besonders praktisch ist das für tilemaps, da speichere ich dann nurnoch ein feld aus zahlenwerten, die die entsprechende sprite id darstellen.
damit ich weiß, welche die höchste sprite id ist, die ich ansprechen darf, zähle ich noch in einer globalen variable mit.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
ich machs warscheinlich auch so wie Zaphod (vorausgesetzt er meint folgendes)
ich speichere die meisten pfade der bilder / sounds etc in text dateien, und lese sie dann mit den pref. befehlen aus.
so kann man auch schnell pfadänderungen vornehmen, ohne alles immer in der pb datei zu schreiben, und erneut compilieren.
edit:
mist zu spät
*cool, wir haben den beitrag zur exakt gleichen zeit abgesendet
*
ich speichere die meisten pfade der bilder / sounds etc in text dateien, und lese sie dann mit den pref. befehlen aus.
so kann man auch schnell pfadänderungen vornehmen, ohne alles immer in der pb datei zu schreiben, und erneut compilieren.
edit:
mist zu spät
*cool, wir haben den beitrag zur exakt gleichen zeit abgesendet
-.-"