Sprite- & Soundverwaltung

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Sprite- & Soundverwaltung

Beitrag von nco2k »

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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

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.

Code: Alles auswählen

#Wall = 500
#Floor = 1000
#Object = 1500
#Person = 2000
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:

Code: Alles auswählen

DisplaySprite(#Wall+walls(x,y),x*32,y*32)
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...
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

bei kleinen sachen mach ich es auch über konstanten. 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.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

@Zaphod
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.
könntest du das etwas näher erläutern und uns ggf. ein (pseudo-)beispielcode zeigen.

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

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.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

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 :mrgreen:
*cool, wir haben den beitrag zur exakt gleichen zeit abgesendet :D *
-.-"
Antworten