sound_loop im step-event

  • GM 8

    sound_loop im step-event

    Hey Leute das ist mein erster Beitrag hier :D

    Also ich habe in meinem Spiel (RPG) Reittiere eingefügt und das funktioniert auch super :thumbup: .

    Nur jetzt wollte ich noch einen Reitsound einfügen der geloopt wird, sobald der Spieler sich mit dem Pferd bewegt...

    Da das ganze sich aber im Step-event abspielt kommt dieser Sound ja "unendlich" oft...

    Ich hab schon so einiges versucht auch mit if !sound_isplaying(snd_reitsound) usw, aber nichts hat geholfen ?(

    Wäre sehr dankbar für eure Hilfe ;)

    MfG hitman06
    true = false;
    :rage:

    hitman06 schrieb:

    Ich hab schon so einiges versucht auch mit if !sound_isplaying(snd_reitsound) usw, aber nichts hat geholfen ?(

    Das liegt daran, das die Funktion, auch nach dem sound_loop(); Befehl, einen falschen Wert zurück geben kann (siehe Hilfe).
    sound_isplaying(index) Gibt an,ob der angegebene (index)SFX gespielt wird. Nachdem du die Funktion zum abspielen eines Sounds aufgerufen hast kommt der Sound aber nicht direkt an den Lautsprechern an, deswegen kann die Funktion vielleicht fälschlicherweise false zurückgeben. Dasselbe ist, wenn du einen Sound anhälst und der noch eine Weile spielt (z.B. wegen eines Echos) gibt die Funktion true zurück.


    Hatte vor kurzen das selbe Problem. Hab das ganz umständlich mit einer Variablen gelöst.
    Das sah etwa so aus:
    :event_create: -Event

    GML-Quellcode

    1. var_sou_start_loop = false;


    :event_step: -Event

    GML-Quellcode

    1. //deine funktion mit der du den sound starten wolltest
    2. if (xxx) {
    3. var_sou_start_loop = true; //start var setzen
    4. }
    5. //sound starten
    6. if (var_sou_start_loop) {
    7. sound_loop(snd_reitsound);
    8. var_sou_start_loop = false; //start var zurücksetzen
    9. }
    hm ich hab das jetzt so gemacht wie du gesagt hast aber es funktioniert leider immer noch nicht :/

    hier das hab ich jetzt im step stehen:

    GML-Quellcode

    1. if mount = true and hspeed != 0 then
    2. {gallop = true;}
    3. if gallop = true then
    4. {sound_loop(snd_gallop);
    5. gallop = false;}
    true = false;
    :rage:
    Jo, wenn ich den Code so sehe funktioniert das auch nicht. Erzeug mal noch ne Variable "gallop_stop" und setzt die im Create-Event auf true.
    Füg dann diesen Code ins Step-Event. Müsste jetzt gehen.

    GML-Quellcode

    1. if mount = true and hspeed != 0 then
    2. {gallop = true;}
    3. if gallop = true and gallop_stop = true then
    4. {sound_loop(snd_gallop);
    5. gallop = false;
    6. gallop_stop = false;}
    7. if gallop_stop = false and hspeed = 0 then
    8. {gallop_stop = true;
    9. sound_stop(snd_gallop);}
    jo kann ich ^^ is halt eigentlich nur angepasst an meine "Bedürfnisse" :P

    GML-Quellcode

    1. if mount = true and hspeed != 0 then
    2. {gallop = true;}
    3. if gallop = true and gallop_stop = true and jump = false then
    4. {sound_loop(snd_gallop);
    5. gallop = false;
    6. gallop_stop = false;}
    7. if gallop_stop = false and hspeed = 0 then
    8. {gallop_stop = true;
    9. sound_stop(snd_gallop);}
    10. if mount = false then
    11. {sound_stop(snd_gallop);
    12. gallop_stop = true;
    13. gallop = false;}
    14. if hspeed = 0 then
    15. {sound_stop(snd_gallop);
    16. gallop_stop = true;
    17. gallop = false;}
    18. if jump = true then
    19. {sound_stop(snd_gallop);
    20. gallop_stop = true;
    21. gallop = false;}


    Also nochma vielen Dank! :thumbup:
    true = false;
    :rage: