Score im nächsten Raum

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

  • Score im nächsten Raum

    Hi Leute!

    Ich bin ein blutiger Anfänger. Ich habe bei meinem Spiel den Highscore bereits fertig.

    Ich habe einen Raum wo der Score angezeigt wird und würde gerne das der erreichte Score über dem Highscore im nächsten Raum steht und immer zurückgesetzt wird.
    Im Gegensatz zum Highscore, der gespeichert bleibt.

    EDIT: Ich habe bereits viel auf Google gesucht, aber ich hab keine Lösung für mich gefunden.

    MfG yoshi
  • Wenn ich dich richtig verstanden habe möchtest du einen gesamt Score der sich unabhänig vom Raumwechsel verhält,
    und einen Raumscore der bei Raumwechsel neu anfängt zu zählen.

    Der Highscore sollte meines Wissens ja unabhänig vom Raum sein.

    Du müsstest nun ein Objekt erstellen.

    Control

    Create:

    GML-Quellcode

    1. ScoreVar = 0


    Step:

    GML-Quellcode

    1. if "Bedingung für Highscore"
    2. ScoreVar += 1
    3. endif


    dieses Objekt darf nicht persistens sein und muss in jedem Raum vorhanden sein, somit wird jedesmal wenn der Raum gewechselt wird, diese Objekt neu erzeugt und der Score des Raums zurückgesetzt!

  • Ich würde mit global. Varianten arbeiten
    Wenn du den raum mit dem highscore betrittst:

    If global. Score >= global. Highscore {
    global. highscore = global.Score
    }
    Und dan wenn man das normal spiel betritt:

    global. Score = 0

    Hoffe ich konnte dir ein wenig weiterhelfen☺.
    Lg. Lauritz
  • Und wenn du den highscore auch im spiel anzeigen lassen willst kannst du einfach mit dem draw event genau wie mit dem normalen score die Variante global. Highscore, anzeigen lassen.
    Jedoch musst du den code von eben dan in einem stepp event dauerhaft laufen lassen.
  • Blayde schrieb:

    Wenn ich dich richtig verstanden habe möchtest du einen gesamt Score der sich unabhänig vom Raumwechsel verhält,
    und einen Raumscore der bei Raumwechsel neu anfängt zu zählen.

    Der Highscore sollte meines Wissens ja unabhänig vom Raum sein.

    Du müsstest nun ein Objekt erstellen.

    Control

    Create:

    GML-Quellcode

    1. ScoreVar = 0


    Step:

    GML-Quellcode

    1. if "Bedingung für Highscore"
    2. ScoreVar += 1
    3. endif


    dieses Objekt darf nicht persistens sein und muss in jedem Raum vorhanden sein, somit wird jedesmal wenn der Raum gewechselt wird, diese Objekt neu erzeugt und der Score des Raums zurückgesetzt!



    "endif" Hast du die Programmiersprache vertauscht? :D

    @TE:
    Ich könnte dir 2 Wege sagen, der eine wäre eine Ini-Datei, wo du den Highscore speicherst und immer wieder ausliest (wenn dieser für immer vorhanden sein soll und nicht nach jedem Neustart resettet werden soll)
    Der 2. Weg wäre, dass der Highscore so lange bleibt wie dein Spiel läuft und im nächsten Raum nur der "lokale Score" resettet wird

    Weg 1
    Create Event

    GML-Quellcode

    1. if !file_exists("config.ini") {
    2. global.highscore = 0;
    3. ini_open("config.ini");
    4. ini_write_real("Game", "HS", global.highscore);
    5. ini_close();
    6. } else {
    7. ini_open("config.ini");
    8. global.highscore = ini_read_real("Game", "HS", 0);
    9. ini_close();
    10. }
    Alles anzeigen

    Die Ini-Datei kannst du natürlich nennen wie du willst, genau so wie die Section und den Key innerhalb der Ini-Datei.


    Der Abschnitt, wo dein Score hinzugefügt / überschrieben werden soll:

    GML-Quellcode

    1. //Score überschrieben
    2. if dein_score > global.highscore {
    3. global.highscore = dein_score;
    4. }
    5. //oder hinzufügen
    6. global.highscore += dein_score;


    Für Variante 2 verzichtest du auf die Ini-Datei und packst im Game Start Event einfach

    GML-Quellcode

    1. global.highscore = 0;


    So wird das immer nur beim Spielstart auf 0 gesetzt.