Maus soll sich bei show_message nicht ändern

  • GM 7

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Maus soll sich bei show_message nicht ändern

    Hallo, hab bei meinem Spiel selber ne Maus gemacht, also einfach ein Objekt, dass das Sprite einer Maus hat und dann x=mouse_x und y=mouse_y
    aber wenn sich jetzt ein Fenster öffnet mit show_message oder show_question oder so etwas, dann bleibt der Mauszeiger da stehen und ein normaler weißer Zeiger kommt.
    Kann man das so ändern oder muss ich set cursor benutzen, was ich eig. nicht möchte
    Gruß Gamer
  • Du erstellst ein skript welches eine box drawt und mit draw_text dan den text rein. nun deaktivierst du vorher alle instancen im raum die nicht für die box gebraucht werden und drawst noch einen knopf auf das viereck. wenn du dann auf den knopf drückst muss auch was passieren.
    hoffe es ist einigermassen verständlich. schau dir mal eines der pausemenues an die es im tutorial bereich gibt. da wirst du fündig was das deaktivieren usw. angeht
    mfg gamner_08
  • genau das. ausserdem solltest du sie jeden step neu drawen.
    also

    GML-Quellcode

    1. instance_activate_all();
    2. screen_redraw();
    3. instance_deactivate_all(true);
    4. //danach musst du nur noch einzeln die instancen aktivieren die du für die checkbox brauchst

    hier ein tutorial von copyboy zum pausieren
  • Hey, wenn ich

    GML-Quellcode

    1. draw_button

    mache, dann steht bei der Hilfe x1,y1,x2,y2 und up, aber was bedeutet up, das ist da nicht richtig erklärt und wie gebe ich dem Button dann eine Funktion, also wenn man draufklickt, ist ja immerhin kein Objekt sondern nur gedrawt
    Gruß Gamer
  • Das musst du selbst abfragen. Hier ein Beispiel, kommt in's Step Event:

    GML-Quellcode

    1. if (mouse_check_button_pressed(mb_left) &&
    2. // Wenn Maustaste gedrückt wurde und
    3. mouse_x>=x1 && mouse_y>=y1 && mouse_x<x2 && mouse_y<y2) {
    4. // Maus im Bereich, wo auch der Button gedrawt wird.
    5. // Aktionen
    6. }

    Alternativ dazu kannst du dir auch gleich ein eigenes Skript machen:

    GML-Quellcode

    1. // draw_get_button(x1,y1,x2,y2)
    2. var x1,y1,x2,y2,over;
    3. x1 = argument0;
    4. y1 = argument1;
    5. x2 = argument2;
    6. y2 = argument3;
    7. over = (mouse_x>=x1 && mouse_y>=y1 && mouse_x<x2 && mouse_y<y2);
    8. draw_button(x1,y1,x2,y2,!over);
    9. return (mouse_check_button_pressed(mb_left) && over);
    Den kannst du dann so verwenden:

    GML-Quellcode

    1. if (draw_get_button(x1,y1,x2,y2)) {
    2. // Aktionen
    3. }
  • ok danke, aber was sagt dieser Teil vom Skript aus?

    GML-Quellcode

    1. over = (mouse_x>=x1 && mouse_y>=y1 && mouse_x<x2 && mouse_y<y2);
    2. draw_button(x1,y1,x2,y2,!over);
    3. return (mouse_check_button_pressed(mb_left) && over);


    vor allem das over weiß ich nicht genau was es bedeutet
    Gruß Gamer
  • over ist eine Variable die angibt, ob die Maus auf dem Button ist. Falls dies nicht der Fall ist, wird eine 0 wiedergegebn. draw_button ist ja klar und das return gibt halt das Ergebnis zurück (an das Objekt, welches das Skript ausführt).
    Wie in der dritten GML-Box kommt die Funktions des Buttons dann hinter die Abfrage "if draw_get_button....".
  • Muss man auch selbst zeichnen :P
    Dazu kannst du den Skript erweitern:

    GML-Quellcode

    1. // draw_get_button(x1,y1,x2,y2,text,textcol)
    2. var x1,y1,x2,y2,over;
    3. x1 = argument0;
    4. y1 = argument1;
    5. x2 = argument2;
    6. y2 = argument3;
    7. text = argument4;
    8. textcol = argument5;
    9. over = (mouse_x>=x1 && mouse_y>=y1 && mouse_x<x2 && mouse_y<y2);
    10. draw_button(x1,y1,x2,y2,!over);
    11. // Text mittig ausrichten und zeichnen:
    12. draw_set_halign(fa_center);
    13. draw_set_valign(fa_middle);
    14. draw_set_color(textcol);
    15. draw_text((x1+x2)/2,(y1+y2)/2,text);
    16. return (mouse_check_button_pressed(mb_left) && over);
    Alles anzeigen

    In dem Beispiel ist c_ltgray die Button- und c_black die Text-Farbe:

    GML-Quellcode

    1. draw_set_color(c_ltgray);
    2. if (draw_get_button(x1,y1,x2,y2,"Text",c_black)) {
    3. // Aktionen
    4. }