get_string = Sprite verschwindet

  • get_string = Sprite verschwindet

    Hi, wenn ich auf einen Sprite klicke, wird der Sprite mit dem geladenen ersetzt. Nun soll, wenn ich das Menü (per rechtsklick) öffne und dann auf den Punkt "Alpha" klicke, man eine Zahl eingeben und dann wird die variable sprite_alpha dem eingegebenen Wert zugewiesen. Das klappt aber nicht. Danach habe ich es mit get_interger() versucht, was irgendwie nur mit "1" klappt. Aber mit get_string() geht es net. Sieht es euch mal an.

    Dieser Code ist im RIGHT MOUSE KLICK EVENT

    GML-Quellcode

    1. yy = window_get_y()
    2. xx = window_get_x()
    3. jj = show_menu_pos(xx+x,yy+y+20,"Alpha",0)
    4. switch(jj)
    5. {
    6. case 0: sprite_alpha = get_string("Alpha?","") ;break;
    7. }

    Dieser Code ist im DRAW EVENT des Objektes:

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,-1,x,y,1,1,0,c_white,sprite_alpha)


    Nun gut dann dachte ich mir, da break den case BEENDET, wird der Vert der Variable gelöscht passiert jedenfalls bei manchen Aktionen. Also habe ich das im CREATE EVENT gemacht:

    GML-Quellcode

    1. alpha = false
    2. sprite_alpha = 1
    3. stop = true

    Und das im STEP EVENT:

    GML-Quellcode

    1. if alpha = true && stop = false
    2. {
    3. ms = get_string("Alpha?","")
    4. sprite_alpha = ms
    5. stop = true
    6. }
    die Variable Stop ist dazu da, damit der get_string net immer ausgeführt wird.
    Im Draw Event hat sich nix verändert. Ich hoffe ihr könnt mir helfen, da es bei beiden versuchen net funzt :(
  • Nun bei alpha geht doch der wert nur von 0 bis 1.
    Also denke ich ist doch die Integervariante richtig.
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • Das Problem daran ist dass, es zwei unterschiediche Variablen Typen gibt. Einmal Strings (Text) und Real (Nur Zahlen). Du must einfach nur umkonvertieren. Oder viel besser: Du sagst ihm einfach das nur Zahlen in Frage kommen und zwar so:

    GML-Quellcode

    1. sprite_alpha = get_integer("Alpha?","")
  • Bei get_integer hättest du auch einen Wert von 0-10 verlangen können. Anschliessend durch 10 dividieren und schon hast du wieder einen Wert zwischen 0 und 1.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.