Objektveränderung beibehalten

  • GM 7
  • Objektveränderung beibehalten

    Ich mache als mein erstes eigenes Spiel gerade ein Quiz in der Art von Wer wird Millionär. Ich habe auch jedes Problemchen selbst lösen können aber bei den Jokern habe ich Probleme.
    Ich möchte, dass, wenn man auf eine taste drückt, das Sprite vom Jokerobjekt geändert wird, also von einem Jokerbild in ein Bild eines Jokers mit Kreuz darüber (für schon verwendet). Das Sprite kann ich auch ändern, aber wie mache ich, dass diese Änderung in den nächsten Räumen erhalten bleibt (auch das Bild mit dem Kreuz, weil der Joker ja schon weg ist)?
  • du könntest für jeden joker eine variable machen
    joker1
    joker2
    und
    joker3

    am anfang des spiel werden diese variablen = 1 gesetzt
    und wenn man drau klickt werden sie = 0
    dann machst du noch eine if abfrage, so dass man die knöpfe nur drücken kann wenn die variable = 1 ist..

    so würde ich das lösen.


    (Noch in Arbeit... )
  • du schreibst in das game start event von deinem Jokerobjekt, weil wenn dus ins create event machst, dann wirds ja wieder auf 1 gestellt wenn du den neuen Raum betritst, deswegen im Game Start.

    GML-Quellcode

    1. joker = 1

    So dann hat die am Anfang den Wert 1 deine Variable.

    Dann schreibst du in das Step event

    GML-Quellcode

    1. if joker == 1 and mouse_check_button_pressed(mb_left)
    2. {
    3. joker = 0; //deine aktion
    4. }


    Dann wird deine Aktion ausgeführt und die Variable auf 0 gesetzt, wenn du auf den Button links klickst, aber nur wenn die Variable noch auf 1 ist.

    Du kannst die Variable joker für jeden deiner Joker nehmen, also gleicher name kannst benutzen, da sie nicht global sind, d.h. dass sie nur für das Objekt gelten.
    Gruß Gamer
  • Ich habe es jetzt genauso gemacht wie oben beschrieben, aber ich erhalte, wenn ich das spiel starte eine Meldung "unknown Variable". Habt ihr eine Idee an was das liegt?
    Und ich würde den Joker gerne durch das drücken einer Taste auslösen.

    Wäre nett wenn ihr mir nochmal helfen könntet.
  • Das ist ganz einfach. Du schreibt ins Game Start Event:

    GML-Quellcode

    1. global.joker_eins=1
    2. global.joke_zwei=1
    3. global.joker_drei=1

    Wenn man sie anklickt schreibst du:

    GML-Quellcode

    1. global.joker_eins=0
    2. //Hier kommt noch hin was du machen willst (was der Joker macht)

    und das gleiche mit den anderen joker, nur eins mit zwei und drei austauschen
    ins Step Event von den Jokern kommt:

    GML-Quellcode

    1. if global.joker_eins=1
    2. sprite_index=name deines sprites
    3. else
    4. sprite_index=name des verbrauchten jokers (der mit dem X)

    Ach ja, das ganze ist GML, das kopierst du in diese Funktion die aussieht wie ein Zettel.
    :| < Hallo. Nein ich bin nicht die Signatur, ich putze hier nur.
  • Im Anhang findest du ein Example, drücke irgendeine Taste um die Räume zu wechseln.
    Dateien
    • Joker Example.zip

      (7,43 kB, 174 mal heruntergeladen, zuletzt: )
    :| < Hallo. Nein ich bin nicht die Signatur, ich putze hier nur.
  • Das Beispiel funktioniert auch, so ungefähr wie ich es gerne möchte. ich hab es mit meinen sprites in mein fast fertiges spiel eingebaut aber dort erscheint immer unknown variable. ich hab dann ein neues spiel erstellt mit nur 2 Sprites, einem Objekt und 2 Räumen. dann erscheint nicht mehr unknown variable sondern es passiert einfach nichts. was mache ich falsch?
    Dateien
    • joker_test.rar

      (79,05 kB, 184 mal heruntergeladen, zuletzt: )
  • Hast du meine Codes überhaupt gelesen? <_< Ich benutze nicht zwei Sprites, sondern nur ein Sprite mit zwei Subimages, der Code ist auch auf das ausgelegt. Du änderst das Sprite, jedoch steht im Code immer noch image_single und nicht sprite_index. Wenn du willst dass es funktioniert musst du

    GML-Quellcode

    1. if global.joker_eins=1
    2. image_single=0
    3. else
    4. image_single=1

    auf

    GML-Quellcode

    1. if global.joker_eins=1
    2. sprite_index=sprite0
    3. else
    4. sprite_index=sprite1

    umändern bzw. du machst aus den zwei Sprites ein Sprite mit zwei Subimages (wenn du nicht weißt wie das geht: Kopier das zweite Sprite mit dieser Funktion, die aussieht wie zwei Zettel (im Sprite Editor), lösch das Sprite, geh zum andern und drück dort auf diese Funktion, die aussieht wie der Zettel auf diesem Ordner)
    :| < Hallo. Nein ich bin nicht die Signatur, ich putze hier nur.
  • Sorry, das hab ich übersehen. Jetzt funktioniert die Datei, die ich hochgeladen habe.
    Aber mein komplettes Spiel hat immernoch die Meldung "unknown Variable".
    Weiß jemand vielleicht aus welchen Gründen so eine Meldung angezeigt werden kann. Vielleicht komm ich ja so auf die Lösung
  • Benutzer online 4

    4 Besucher