Problem mit menu

  • Problem mit menu

    Hi.
    Ich hab nen problem mit meinem menu.(das is das erste was ich mache)

    also es ist kein hauptmenu, sondern eins wo man die waffen wechseln soll.

    also wenn man "rechtsklick" klickt soll sich da sn menu öffnen wo man die waffen ändern kann.

    GML-Quellcode

    1. switch (weapons)
    2. {
    3. case laser:
    4. instance_change(obj_waffe1,true);
    5. break;
    6. case rocketlauncher:
    7. instance_change(obj_waffe2,true);
    8. break;
    9. }
  • Du musst global mouse verwenden. Falls es sich nur um einen bestimmten Bereich handelt, der geklickt wird, musst du erst überprüfen, wo die Maus ist (Mit If; Ich kann auch wunsch den Code geben). Dannach eben überprüfen.
  • Ich seh keinen Fehler. Falls da doch einer ist, lässt sich das schnell rausfinden. Datzu musst du den Code nur ersetzen. Anstatt die Instanz zu tauschen machst du folgenedes. Zerstöre die eigene Instanz und erstelle die neue. Wenn dass nicht geht, hast du eine Fehlerquelle ausgeschlossen.
  • 1. Er kennt die Variabel weapons noch nicht => Irgendwie definieren
    2. Im switch statment musst du die Namen der einzelenen Waffen in Anführungs und Schlusszeichen schreiben

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Du machst da ja ein switch mit der Variable weapons. Die existiert aber zu dem Zeitpunkt nicht, das ist das Problem und dagegen musst du was tun.
    Und Punkt 2 von Dragoon muss auch dringenst umgesetzt werden, sonst haste gleich den nächsten Error.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Original von Melancor
    Das mit den Anführungszeichen ist mir unklar. Warum sollen denn die wichtig sein? Er will doch nicht Strings bearbeiten, sonndern nur Indizes auslesen, oder was versteh ich hier falsch?
    Wenn du das nicht in Anführungszeichen schreibst denkt er, dass du damit nicht den Wert sondern eine neue Variable meinst. Dann würde der gleiche Fehler wie oben, nur leicht verändert wiederkommen. Initialisieren tust du indem du entwegder die Funktion var verwendest oder den Variablen im Createevent einfach einen Wert zuweist. Siehe dazu folgenden Auszug aus der Hildedatei:

    Variablen

    Du kannst Variablen erstellen, indem du ihnen einfach einen Wert zuweist. Wenn du einfach einen Variablennamen benutzt, wird die Variable lokal erstellt, du wirst sie also in anderen Objekten nicht finden. Wenn du auf Variablen eines anderen Objektes zugreifen willst, schreibe einfach den Namen des Objektes, getrennt durch einen Punkt, gefolgt vom Variablennamen.

    Um globale Variablen zu erstellen, die für alle Objekte sichtbar sind, schreibe vor ihren Namen das Word global und einen Punkt. Beispielsweise könnte man folgendes schreiben:

    GML-Quellcode

    1. {
    2. if (global.doit)
    3. {
    4. // mach etwas
    5. global.doit = false;
    6. }
    7. }

    Manchmal braucht man Variablen nur in einem Stück Code oder in einem Skript. Dazu müssen die Variablen am Anfang des Codes mit dem Schlüsselwort var deklariert werden. Auf diese Weise wird kein Speicher verschwendet, Namenskonflikte werden umgangen und es ist schneller als globale Variablen. Die Deklaration sieht wie folgt aus:

    GML-Quellcode

    1. var <varname1>,<varname2>,<varname3>, ...

    Z. B. kann man schreiben:

    GML-Quellcode

    1. {
    2. var xx,yy;
    3. xx = x+10;
    4. yy = y+10;
    5. instance_create(xx,yy,ball);
    6. }

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

  • Benutzer online 1

    1 Besucher