Pausieren via Alarm funktioniert nicht ...

  • Allgemein

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

  • Pausieren via Alarm funktioniert nicht ...

    Hallo,

    also ich habe folgendes Problem:

    Ich habe ein obj_player, wenn dies mit einem Objekt kollidiert, soll Game Over angezeigt werden mit einer kleinen Pause und dann weiter in den Raum mit der Highscore-Liste.
    Soweit so gut!

    Ich habe ein Game Over Objekt erstellt. Im Create-Event mach ich folgendes:

    Quellcode

    1. ​global.pauseGame = true;
    2. alarm[0] = 10 * room_speed;


    Im Alarm-Event von Game-Over mache ich das:

    Quellcode

    1. global.pauseGame = false;
    2. alarm[0] = 0;
    3. instance_destroy();


    In der Kollisions-Erkennung vom Player steht das:

    Quellcode

    1. if (currentID == 0) {
    2. //draw Gameover
    3. instance_create(room_width/2, room_height/2, obj_gameover);
    4. //destroy snake
    5. instance_destroy();
    6. show_message(string(global.pauseGame));
    7. if (global.pauseGame == false) {
    8. //go to highscore room
    9. room_goto(rm_highscore);
    10. }
    11. }
    Alles anzeigen


    Mein Problem ist jetzt, das die Variable global.pauseGame nicht auf false gesetzt wird um zum anderen Raum zu gehen?

    Wo lieght das Problem?
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • Typischer Fehler, ist aber nicht schlimm
    alles was du hinter instance_destroy() schreibst wird nicht mehr ausgeführt
    pack einfach instance_destroy() nach hinten
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Okay, also egal wo ich instance_destroy() hinsetze, läuft nicht. Die Variable global.pauseGame wird im Alam-Event (0) nicht auf false gesetzt.

    Quellcode

    1. if (currentID == 0) {
    2. //draw Gameover
    3. instance_create(room_width/2, room_height/2, obj_gameover);
    4. if (global.pauseGame == false) {
    5. //go to highscore room
    6. room_goto(rm_highscore);
    7. //destroy snake
    8. instance_destroy();
    9. }
    10. }
    Alles anzeigen
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • husi012 schrieb:


    alles was du hinter instance_destroy() schreibst wird nicht mehr ausgeführt


    Will nur eben mal den Fehler von Husi korrigieren.
    Alles was hinter instance_destroy() kommt wird sehr wohl ausgeführt!
    Beim aufrufen der Funktion wird das Destroy-Event ausgelöst und danach gehts mit dem restlichen Code weiter.
    Kann manchmal zu Problemen führen die sich vermeiden lassen wenn man es weiß
    Sorm ist Schuld

    Edit: Doch ist er
  • Hi Pacmangamer,

    das war nicht das Problem mit instance_destroy() aber in der Not greift man nach jedem Strohhalm.

    Ich musst einfach nur ein bisschen Code in ein anderes Objekt ziehen (dort in den Alarm) und fertig. Manchmal sind die Probleme :(
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.