Schon wieder Variablenfehler

  • Schon wieder Variablenfehler

    Hi, ich verzweifel ma wieder an Variablen. Ich habe diesen Code in jedes Event gepackt, aber der Game Maker erkennt die Variable nie.

    GML-Quellcode

    1. var showprice;
    2. if mouse_check_button_pressed(mb_left)
    3. variable_local_set(showprice,true)
    4. else
    5. variable_local_set(showprice,false)
    6. if showprice = true
    7. {
    8. draw_set_color(c_silver);
    9. draw_rectangle(x, y-12, x + 170, y+9, true);
    10. draw_set_color(c_black);
    11. draw_rectangle(x+1, y-11, x + 170, y+9, false);
    12. draw_set_color(c_silver);
    13. draw_text(x+4, y-10, "500 Gold");
    14. }
    Alles anzeigen

    ich habe "variable_global_set" auch in "variable_local_set" umgewandelt. Es funktioniert einfach nicht :( . Ach ja ich wollte auch gleich mal fragen, was "relative" in der GML Sprache bedeutet. Z.B.

    GML-Quellcode

    1. mouse_x = 0 and mouse_y = 0

    Danke im voraus ;)

    SRY, DIESES THEMA BITTE VERSCHIEBEN ;)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Merko ()

  • Was ich nicht verstehe, ist wieso du erstens einmal variable_local_set und dann variable_global_set verwendest (das sind dann zwei verschiedene Variablen) und zweitens überhaupt diese Funktionen verwendest (showprice=true; oder global.showprice=true; macht doch das selbe und ist wesentlich praktischer zu schreiben.)
    Das ganze würde sich im Draw-Event eigentlich ganz gut machen.

    die letzte Zeile verstehe ich nicht. Was soll das AND da bitteschön bewirken?
    und relative heißt nur, dass der neue Wert auf den alten aufaddiert wird, ohne relative wird der Wert direkt gesetzt. In GML gibt es da die schönen Inkrement (+=) und Dekrement(-=)Operatoren:
    "relative an": x=x+5; bzw x+=5; // wird also zum alten Wert addiert
    "relative aus": x=5; // wird auf den absoluten Wert gesetzt.
    Einige meiner Spiele:
  • Sry, da hab ich mich ganz normal verschreiben. Auch wenn beides das gleiche ist. er erkennt die Variable einfach nicht :( Ich möchte es nur haben, dass wenn die Variable true ist, soll er den Preis anzeigen und bei false nicht und das funzt ja nicht...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Merko ()

  • Funktioniert die Anzeige denn wenn du nur das, was in der letzten geschweiften Klammer steht einbaust. Nur zum Test. Wenns da schon Probleme gibt, dann sind die ganzen if-Abfragen für die Katz...

    EDIT: Problem könnte sein, dass das alles in einem Event ist und die Variable show_price danach nichtmehr existiert. Lösch doch mal das var show_price und schreib dafür ins Create_Event: show_price=false;
    Einige meiner Spiele:
  • Natürlich funktioniert das. Sobald ich irgendwo: meinetollevariable=4; schreibe, dann existiert die. Ich darf nur nicht irgendwo DAVOR schon in einer If_Bedingung fragen: if (meinetollevariable==4) ... da gäbs dann einen Fehler... Wenn ich aber im Create Event alle Variablen, die das Objekt braucht schonmal auf einen Wert setze, dann gibt es in der Regel keine Probleme.
    Einige meiner Spiele:
  • Ich habe im Create Event von meinem Objekt jetzt das als Code eingegeben. ICH WOLLT DA MA FRAGEN: Was bedeutet in GML "mouse_enter"; "mouse_leave")? Hab ich net gefunden... Jetzt wird nur nicht die aktion gedrawed aber das Problem ist damit gelöst^^

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Merko ()

  • Ähm... das mit dem Drawen:
    Schmeiß den Code ins Draw-Event, ist nicht anders als bei Drag and Drop, jede Draw-Action muss ins Draw-Event. Eventuell verschwindet die zeichnende(drawende) Instanz dann. Dafür musst du dann:

    GML-Quellcode

    1. draw_sprite(sprite_index,image_index,x,y)
    nehmen. Oder, falls du das Objekt im Spiel verändert hast draw_sprite_ext(...). Naja, bei mouse_enter und mouse_leave kann ich nur mir selbst sagen: :fresse:

    Edit: Text erweitert

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

  • RE: Schon wieder Variablenfehler

    GML-Quellcode

    1. showprice = 0
    2. if mouse_check_button_pressed(mb_left)
    3. showprice = true
    4. else
    5. showprice = false //bis hier ins Stepevent
    6. if showprice = true //ab dieser Zeile
    7. {
    8. draw_set_color(c_silver);
    9. draw_rectangle(x, y-12, x + 170, y+9, true);
    10. draw_set_color(c_black);
    11. draw_rectangle(x+1, y-11, x + 170, y+9, false);
    12. draw_set_color(c_silver);
    13. draw_text(x+4, y-10, "500 Gold"); //bis hier ins Drawevent
    14. }
    Alles anzeigen


    Also ich hätte das so gemacht!
  • Benutzer online 1

    1 Besucher