Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.03.2013, 12:14

Verwaltung von SDL_mixer's Mix_Chunks

Hi, ich verwende C++ und SDL. Zur Zeit fehlt mir noch der richtige Ansatz für folgendes:
Ich habe eine Hand voll Figuren, die sich auf dem Bildschirm tummeln und auch Sounds abspielen sollen (z.B. Schrittgeräusche beim Laufen). Jedoch kann ich nicht jedem Objekt einen Channel zuweisen, da die Anzahl der Channels ja begrenzt ist, meine Objektzahl aber nicht unbedingt nach oben begrenzt ist; es können 5 sein, oder 20 oder 150. Ginge das, könnte ich (solange eine Animation gespielt wird) den zugehörigen Soundeffekt geloopt wiedergeben.
Meine zweite Idee war es, mitzuzählen, welcher Channel zuletzt für die Wiedergabe verwendet wurde, und (bei wenn der nächste Sound einer vllt. anderen Figur gespielt werden soll) den nächsten Channel zu nehmen (ggf. von vorne zu beginnen und dabei die bisherige Channel-Wiedergabe ggf. auch anzuhalten). Nur habe ich dann ein Problem mit dem zyklischen wiederholen des Sounds: ich müsste dann berechnen nach wie vielen logischen Ticks der Sound beendet ist und neu gestartet werden müsste.

Was ist eine gängige Lösung für dieses Problem?

LG Glocke

3

07.03.2013, 13:41

Okay danke, das hat erstmal geholfen. Aber ist es üblich jedem Objekt einen eigenen Channel zur Verfügung zu stellen?

4

07.03.2013, 16:51

Wenn du Mix_PlayChannel() -1 als Kanal übergibst, wird ja automatisch nach dem nächsten freien Kanal gesucht. Du musst wissen, wie viele Kanäle im Maximalfall gespielt werden, sonst kommts zu Unterbrechungen (wenn kein Kanal mehr zur Verfügung steht, wird ein anderer einfach überspielt). So würde ich es jedenfalls erstmal versuchen, also nur die Anzahl an Kanälen anlegen, die maximal gleichzeitig gespielt werden.

5

10.03.2013, 23:10

Ich habe das jetzt mal mit "vielen" Objekten probiert. Bei 90 sich bewegenden Figuren ergibt der Lauf-Soundeffekt eine ziemlich ekelhafte, breiige Masse :D

6

11.03.2013, 13:32

Ist das jetzt ein Problem für dich? 'Ekelhaft' und 'breiige Masse' hört sich nicht so doll an. Oder hast du ne Lösung für das Problem?
Bei so vielen Männchen brauchst du imo nur noch einzelne Kulissen. Und noch einen Sound falls ein, zwei, drei Männchen näher kommen oder draufgezoomt wird.

7

11.03.2013, 15:33

Was heißt Problem :D Es klingt halt nicht so toll ^^ Eine Lösung habe ich noch nicht..

Was meinst du genau mit der Kulisse?

8

11.03.2013, 20:51

Na, Geräuschkulissen (Schrittgeräusche von Männchengruppen). Bei sehr vielen Männchen wird man so die gewollte Klangillusion haben, ohne jedem einzelnen Männchen nen eigenen Sound zu verpassen. Im einfachsten Fall hast du 2 solche Kulissen, die sich in der Spieldauer bisschen unterscheiden. Beim gleichzeitigen Abspielen in ner Endlosschleife kriegt man so nicht so schnell den Eindruck, das sich da was wiederholt. Heißt, wenn du 2 Kulissen hast, die eine 9 Sekunden, die andere 10, wiederholt sich das dann erst nach 100 Sekunden (wenn ich recht in der Annahme gehe).

Keine Ahnung ob das so in dein Konzept passt. ist nur so ne Idee, ohne dass ich das je selbst ausprobiert habe. Problem dabei wird sein die Intensität entsprechen der Männchenzahl zu variieren.

9

12.03.2013, 11:46

Das klingt interessant! Ich setz mich demnächst mal ran, Danke!!

LG Glocke :)

Werbeanzeige