Zähler

  • GM 7
  • Tag zusammen!
    Ich habe ein Problem. Habe schon danach gesucht aber nichts gefunden.
    Also ich möchte für ein Spiel, dass man Verschiedene gegenstende einsammeln kann. Wenn man Durch solch einen Gegenstand (zB Blume) durchgeht soll diese Verschwinden und ein Zählen eine Zahl hoch gehen. (Also man hat eine Blume eingesammelt = Zähler von der Blume: 1. Man hat zwei Blumen eingesammelt = Zähler der Blume: 2.)
    Da ich mehrere Objekte machen möchte kann ich kein Scor Event verwenden.

    Ich hoffe ihr versteht was ich meine und könnt mir Helfen!

    Ich bin keine Signatur... Ich putze hier nur!
  • globale Variablen sind hier der Schlüssel zum Erfolg. Diese definierst du am einfachsten, indem du vor ihren Namen einfach immer "global." anhängst. Da Score eine solche Variable darstellt, kannst du mit ihr nicht mehrere Items zählen - dafür ist es nötig, eigene Variablen zu definieren. Das Event, das du brauchst, ist also nicht , sondern (oder besser gleich ).
    Im Create-Event eines auf persistent geschalteten Controller-Objektes (damit es nach einem Roomwechsel nicht mehr neu kreiert wird und damit alle Variablen wieder auf 0 setzt) definierst du nun deine Variablen mit dem Befehl "Set Variable global.name to 0" - in GML:

    GML-Quellcode

    1. global.name=0;

    sobald die Variablen einmal definiert wurden, kannst du sie von jedem Objekt aus verändern.
    Der Rest ist reine Formsache.
  • Hey Danke!
    Bei dieser Gelegenheit kann ich auch gleich mal Fragen:
    Wie kann im mit GML ein Raum wechseln?
    Also ich habe schon einen Fertigen GML:

    GML-Quellcode

    1. if global.z <= 2
    2. show_message("Ich baruche 3!);
    3. if global.z >= 3
    4. show_message("Danke!"); // Und hier ist ein Fehler! Ich weiß aber nicht welchen!
    5. global.z -= 3
    6. //Und hier soll dein ein Code zum nächsten Raum hin!

    Ich bin keine Signatur... Ich putze hier nur!
  • Der fehler ist nicht a wo du ihn vermutest, du hast ein " zeichen vergessen, unzwar bei der ersten message. Und mit den nächsten raum, das würde ich alles in allem so machen:

    GML-Quellcode

    1. if global.z <= 2
    2. { // die klammern nur der ordnung halber, ist ratsam sich das anzugewöhnen
    3. show_message("Ich baruche 3!");//Hier war der fehler
    4. }
    5. if global.z >= 3
    6. {
    7. show_message("Danke!");
    8. global.z -= 3
    9. transition_kind=21 // nummer vom übergang, 21 ist einblenden
    10. transition_steps=30 // wie lange soll der übergang dauern
    11. room_goto(room_sonstwas) // geht in den nächsten raum. alternativ wäre da auch noch room_goto_next() und room_goto_previous()
    12. }
    Alles anzeigen

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