Sound in GML nicht loopen

  • GM 8
  • Sound in GML nicht loopen

    Ersteinmal Hallo :D
    Ich mache zurzeit einen Topdown shooter, und habe einen Problem mit dem sound der abgespielt wird, wenn der gegner einen sieht.(in meinem Fall ein Zombie :D)
    Immer wenn der Zombie mich sieht, wird der Sound zwar abgespielt, aber es loopt.
    Also er hört erst auf der sound wenn ich den zombie erschossen habe.
    Mein code sieht folgendermaßen aus :

    STEP EVENT

    GML-Quellcode

    1. if (distance_to_object(Spieler)<200){move_towards_point(Spieler.x,Spieler.y,3)sound_play(snd_Zombie)}elsespeed = 0


    EDIT:
    Keine ahnung wieso aber der code wird in einer zeile angezeigt xD
  • Das liegt daran, dass die Distanz zum Spieler immer < 200 ist (wenn der Gegner den Spieler gesehen hat) und dadurch der Sound ständig gefeuert wird.

    Lösen kannst du das Problem mit einer einfachen Varaible, z.B. "detected_palyer"
    Dann kannst du ins Create Event folgendes schreiben:

    GML-Quellcode

    1. detected_player = 0; //Der Spieler wurde noch nicht gesehen.


    und im Step Event:

    GML-Quellcode

    1. if (distance_to_object(Spieler)<200){
    2. move_towards_point(Spieler.x,Spieler.y,3);
    3. if( !detected_player ){ //Falls der Spieler noch nicht entdeckt wurde.
    4. sound_play(snd_Zombie);
    5. }
    6. detected_player = 1; //Der Spieler wurde jetzt gesichtet.
    7. }
    8. else{
    9. speed = 0;
    10. detected_player = 0; //Da der Gegner aus dem Radius ist, ist der Player auch nichtmehr "entdeckt".
    11. }
    Alles anzeigen


    - Tobi97
    8|
  • Benutzer online 1

    1 Besucher