Gegner verschwindet

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

  • Gegner verschwindet

    Hi,

    bei meinen Spiel hat alles geklappt doch jetzt wo ich das level vergrößert habe
    verschwinden einfach meine Gegner nach ca 1 sek.
    Was kann ich machen?


    (Es sind 17 gegner)

    LG 4ndi
    Jedes Spiel war mal Schlecht doch manche werden verbessert <3

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von 4ndi ()

  • obj = player_oby; //Welches Objekt verfolgt werden soll

    //-----------------Bewegung------------------

    if image_index >= image_number{ //Wenn die Animation fertig ist
    alarm[0] = room_speed/2; //Die Länge, die er Pause machen soll, hier: eine halbe Sekunde
    image_speed = 0; //Animation beenden/ Speed auf 0 (würde sich sonst einfach wiederholen)
    }

    hspeed = 0; //Nach jeder Bewegeung stoppen


    if distance_to_object(obj) > 5{ //Wenn der Spieler weiter entfernt ist, als 5 pixel
    if x < obj.x //Wenn der Spieler rechts vom Gegner ist
    hspeed += 5; //Soll er nach rechts laufen
    else if x > obj.x //Ansonsten, wenn er links vom Gegner ist
    hspeed -= 7; //Nach links laufen
    }
    if distance_to_object(obj) > 5{ //Wenn der Spieler weiter entfernt ist, als 5 pixel
    if y < obj.y //Wenn der Spieler rechts vom Gegner ist
    vspeed += 5; //Soll er nach rechts laufen
    else if y > obj.y //Ansonsten, wenn er links vom Gegner ist
    vspeed -= 7; //Nach links laufen
    }



    // ----------------------------------------Bei soliden nicht hindurchlaufen----------------
    if !place_free(x+hspeed,y)
    hspeed = 0;
    if !place_free(x,y+vspeed)
    vspeed = 0;
    if !place_free(x,y+vspeed){
    hspeed = 0;
    vspeed = 0;
    }




    if lebengegner <= 0
    {
    global.schuss += 4
    instance_destroy()

    }

    das ist der gegner Code hat alles geklappt bis ich mehr gemacht habe :(
    Jedes Spiel war mal Schlecht doch manche werden verbessert <3
  • Kleiner Tipp: Hier beim Antworten verfassen gibt es einen kleinen Knopf darauf steht "GML". Wenn du den benutzt, wird der Code viel besser formatiert und ist viel besser lesbar.
    Einfach dann den Code zw. den [ GML ] xxxxxxx [ /GML ] klammer posten, und das sieht gleich viel besser aus.

    Wenn der Code funktioniert hat, bis du mehr gemacht hast, dann liegt es wohl an etwas, was du danach noch gemacht hast. :)
    Entweder deine Gegner verschwinden durch den Boden schlagartig, oder sie werden aufgrund ieines Codes zerstört / deaktiviert.

    Du könntest dir iwo eine DEBUG Variable zeichnen lassen und dir den Wert "instance_count" anzeigen lassen (zb im Draw Event -> draw_text(10,10, instance_count)) Dieser gibt an, wieviele Instanzen gerade im Raum Aktiv sind.
    Wenn er am Anfang deine Gegner mitzählt und dann nach der einen Sekunde der Wert sinkt, werden die wohl zerstört.

    Bleibt der Wert aber nachdem deine Gegner "verschwinden" gleich, deutet das darauf hin das sie iwo anders hin verschwinden zb. durch den Boden fallen, oder sich irgendwo an eine Position "teleportieren" :)
  • Von dem Code den du hier gezeigt hast, verschwinden Gegner nur, wenn die Variable lebengegner<=0 ist.
    Dann wäre interessant zu wissen wie der Anfangswert gesetzt wird und wie die Leben abgezogen werden.

    Evtl. ziehst du von allen Gegnern gleichzeitig die Leben ab statt nur vom getroffenen oder verwendest eine gemeinsame Variable.
  • Alle haben die Variable global.lebengegner davor hat alles aber geklappt das finde ich merk würdig.
    Der anfangs wert wird in Create event mit global.lebengegner = 3 gesetzt.
    Und es wird im collisions event mit schuss_obyglobal.lebengegner -= 1
    Jedes Spiel war mal Schlecht doch manche werden verbessert <3
  • Eine globale Variable ist eine einzige Variable. Das heißt alle Gegner haben den gleichen Wert und sterben gleichzeitig.
    Mach die Variable lokal und check mal wieso die Variable schon nach einer Sekunde runtergesetzt wird obwohl du anscheinendr noch nicht geschossen hast.