ein sound-verschiedene lautstärken

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ein sound-verschiedene lautstärken

    wie kann ich einen sound mehrmals gleichzeitig abspielen und zwar jeden einzelnen mit einer unterschiedlichen lautstärke?
    soweit ich weis funktioniert das mit game maker nciht, kennt jemand zufällig ne dll?
    und vergesst nicht, ich möchte EINEN sound mehrmals hintereinande starten, während er noch läuft, und dabei immer unterschiedliche lautstärken haben!
  • Das Problem hatte ich auch mal. Bin bei der armseeligen Lösung hängen geblieben einen Sound mehrfach im GM einzubinden - abwechselnd einen Sound nach dem anderen gespielt (mit einer Zählvariable immer die vier identischen Sounds durchgegangen). Hat praktisch perfekt gefunzt, aber ist eine sehr unelegante Lösung. Bin gespannt ob einer ne bessere Lösung kennt.
  • Das Problem hatte ich auch mal. Bin bei der armseeligen Lösung hängen geblieben einen Sound mehrfach im GM einzubinden - abwechselnd einen Sound nach dem anderen gespielt (mit einer Zählvariable immer die vier identischen Sounds durchgegangen). Hat praktisch perfekt gefunzt, aber ist eine sehr unelegante Lösung. Bin gespannt ob einer ne bessere Lösung kennt.
    Genau das wäre auch mein Lösungsansatz, ist aber, wie du bereits gesagt hast nicht gerade professionell.
    Schade dass man in GM Sounds keinen index zuweisen kann und sie damit wieder aufrufen kann, um die lautstärke zu ändern oder so.
  • naja bei einem sound funktioniert das noch gut, aber was ist wenn du 20 verschiedene sounds hast und es existieren 20 instancen die alle gleichzeitig und durcheinander sounds abspielen?
    da müsstest du für jede instance 20 sounds machen, das wären dann 400! Nicht gerade recourcen schonend.
  • RushOn schrieb:

    naja man könnte sie extern laden, nur weis ich nicht ob dann die lautstärke noch bestanden bleibt
    Hey, die Idee ist gut. Wahrscheinlich kann man tatsächlich eine externe Datei mehrmals laden. Dann geht zwar immer noch unnötig Arbeitsspeicher drauf, aber immerhin verbraucht es weniger Festplattenspeicher - wäre immerhin schon ne halb-elegante Lösung. ;)
  • das die sound files extern geladen werden, und nicht im game maker x fach erstellt werden, davon bin ich natürlich mal ausgegangen.
    Trotzdem geht, wie du schon gesagt hast, sehr viel ram speicher drauf.
    Es muss doch eine Möglichkeit geben, dass ganze anders zu lösen.
    Es kann doch nicht sein, das GM in sachen sounds so beschränkt ist.
  • Hab mir das mal eben durchgelesen hier.

    Etwas ungenau beschrieben.

    Also möchtest du EINEN Sound noch einmal abspielen wärend er aber schon läuft, sprich du hörst eine Tür knarcksen und wärend sie knarckst wird dieser sound noch einmal etwas lauter/ leiser abgespielt.

    Oder aber du hörst sie knarcksen und erst nach dem der sound zu ende ist wird er noch einmal abgespielt.

    Falls letzteres, hätte ich da ne lösung für dich.
    Dann noch die frage soll der sound lauter/ leiser werden wenn du näher kommst oder allgemein?

    Außerdem hab ich vlt. noch ne lösung, bezüglich "mehrere sounds abspielen"

    Wenn ich euch richtig verstehe, ihr wollt 20 Sound abspielen, ggf. alle auf einmal, aber nur ein script, obj oder sonst was nutzten richtig?
    Nutzt doch einfach ein Sound Controll Object in dem steht welcher sound abgespielt werden soll. für jeden sound dann zum beispiel ein obj_sound zu ordnen.

    Quellcode

    1. soundtoplay = sound1;
    2. soundfrom = obj_sound


    so in etwa ^^

    Hoffe das hilft, falls nicht -> Entschuldigt wenn ich was falsch verstanden habe.
  • Hab mal gegoogelt und folgendes gefunden: gmc.yoyogames.com/index.php?showtopic=166056
    Ist ne DLL, kenn mich damit aber auch nicht aus, man scheint damit die Lautstärke und noch ein paar andere Sachen im Spiel verändern zu können. Folgendes steht in der Feature Liste: -Ability to set and get the panning, frequency, volume, position and priority of any playing sound.
    Ein Versuch wärs mal wert.
  • was willst du genau, ein sound echo?
    Also nochmal ganz von vorne.
    Es ist ein TDS.
    Es gibt Gegner.
    Wenn ein Gegner schießt, soll der sound namens snd_shoot abgespielt werden. Die Lautstärke soll der Entfernung zum Spieler angepasst werden.
    Das bekomme ich auch noch ganz leicht hin.
    Aber was ist jetzt wenn ein Gegner schießt und einen step später schießt ein anderer gegner?
    Der Sound snd_shoot ist noch nicht zu ende gespielt, und wenn ich jetzt die lautstärke an die entfernung des 2ten soundes anpasse, nimmt der erste sound auch diese lautstärke an.
    Das soll aber nicht so sein!

    Hab mal gegoogelt und folgendes gefunden: gmc.yoyogames.com/index.php?showtopic=166056
    Ist ne DLL
    finde leider keinen download zu dieser dll...
  • Ja hab ihn schon gefunden, aber nicht in der signatur, die wurde bei mir irgendwie nicht angezeigt.
    Ist aber auch nicht wirklich das richtige was ich suche...
    Extrem komplex und bietet aber leider nicht die eine funktion die ich suche.
  • zeig doch mal bitte ein kleines example, was und wie du schon gemacht hast
    Wiso brauchst du da ein Example?
    Ich habs jetzt doch schon mehr als deutlich erklärt. Es liegt kein Fehler im Code vor. GM fehlen hier einfach ein paar wichtige sound funktionen. Und ich versuche jetzt das ganze irgendwie zu umgehen.
    Du kannst dir schon die engine anschauen, wenn du willst...
    Hier Diskussion KI für Top-Down-Shooter ist die exe zu dem Ding.
  • Also ich würde dir die FMOD-Sound Engine Empfehlen. Sieht auf den ersten Blick recht komplex aus, aber es gibt nur zwei, drei Funktionen die du brauchst. Eine zum Laden des Sounds, eine Um die Zuhörerposition zu bestimmen und dann eine, die den Sound Abspielt und zwar

    GML-Quellcode

    1. FMODSoundPlay3d(sound,x,y,0)


    Beim Laden des Sounds stellst du die maximale Distanz ein, bei der der Sound noch mit Lautstärke 1 zu hören ist und die Distanz, bei der der Sound garnicht mehr zu hören ist:

    GML-Quellcode

    1. global.snd_cannon1=FMODSoundAdd('sfx\cannon1.wav',true,false); //Lädt einen Sound, 3d Modus true, Streaming false
    2. FMODSoundSet3dMinMaxDistance(global.snd_cannon1,100,800); //Setzt den Sound Radius für Min und Max in Pixeln


    Im end step aktualisieren:

    GML-Quellcode

    1. FMODListenerSet3dPosition(1,spieler.x,spieler.y,0);
    2. FMODUpdate();

    © 2008 by Teamgrill Productions
  • Dann hab ich noch die DLL gefunden: alphaios.net/bgm/#Download
    Damit sollte es wirklich gehen da gibts ein Script bgm_vol, womit man die Lautstärke anpassen kann.
    Ich frag mich aber warum du nicht einfach die Funktion sound_volume benutzt, kann man halt nur bei .wav Dateien verwenden.
  • @ GrinchXL: Wenn der Sound bereits abgespielt wird und es wird noch einer Abgespielt und man verstellt die Lautstärke verändert die sich bei allen gleichen abgespielten Sounds, was nicht der gewünschte Effekt ist.

    © 2008 by Teamgrill Productions