Die Sache mit dem Draw bzw. draw_text

  • GM 8
  • Die Sache mit dem Draw bzw. draw_text

    Kurz vor der Fertigstellung meines ersten Spieles hab ich doch tatsächlich wieder Problemchen, diesmal mit draw bzw. draw_text:

    1. Zum einen hätte ich gerne gewusst, wie ich einen einmal erstellten und angezeigten Text wieder "löschen" kann. Mir wäre auch geholfen, wenn er nur eine bestimmte Zeitlang erscheinen würde, je nachdem, was einfacher zu machen ist. Ich finde nirgendwo einen Hinweis darauf, einen Text wieder zu löschen. Alle Versuche bringen als Ergebnis, daß gleich alles gelöscht ist, auch die Objecte und backgrounds da drunter... :huh:

    2. Kann man dem Text, der mit draw_text gezeichnet wird, irgendwie einen "Text-Untergrund" verpassen? Er hat immer einen durchsichtigen Hintergrund, weshalb der Text mitunter, wenn er auf unruhigen Untergrund fällt, schwer zu lesen ist. Man kann zwar die Textfarbe ändern, aber offenbar nicht den Untergrund - oder doch? :?:

    3. Grundsätzlich hab ich aber bei Draw offenbar noch etwas nicht richtig verstanden: Klar ist, daß der Text nur im draw-event gezeichnet wird. Was aber ist, wenn ich einen Text nun mal im keypressed-event ausgeben muß? Ich habe in GML nichts gefunden, mit dem man dort z.B. dann ein draw-event aufrufen könnte. Wie lösen denn andere das Problem? ;(

    4. Und wo wir schon mal beim Text sind: wollte in die Game-Information, also die Anleitung, die per F1 aufgerufen wird, zum Besseren Verständnis Bilder von den Sprites einfügen. Leider läßt das der Text-Editor nicht zu. Gibt es eine Möglichkeit, dort Bilder formatiert reinzubringen?

    Dank Eurer aller Hilfen bringe ich tatsächlich bald ein fertiges Spiel zustande, wer hätte das gedacht! Bleiben eben nur noch die Problemchen mit dem Draw-Event. Wenn vielleicht da der ein oder andere mit seiner klasse Erfahrung noch etwas nachhelfen könnte? Habe zu allen Punkten lange die Dokumentation und die gelösten Fragen hier studiert, aber nicht immer sehr erfolgreich.

    Wünsche allen noch einen schönen Sonntagabend bzw. Wochenanfang,
    Archie


    Ich bin's nochmal. Hab jetzt alles umgesetzt, klappt auch ganz prima - bis auf das "text_zeigen", das den Text außerhalb eines draw-Events anzeigen soll.
    Bitte: wo muß ich denn diese Variable mit dem Draw-Event verbinden?? Es soll der Text angezeigt werden, wenn der Spieler den nächsten Schritt macht. Also im Step-Event aufgerufen werden. Aber wo muß die Variable vereinbart werden, damit GM weiß, was ich damit meine? Im eigentlichen Draw-Event offenbar nicht, denn da macht er das nicht....

    Kannst Du oder jemand anderer hier bitte noch mal weiterhelfen?
    Danke, Archie

    PS: Um Mißverständnisse zu vermeiden: immer, wenn ich im Draw-Event diese Anweisung schreibe, dann wird das Männchen nicht mehr gezeichnet. Das scheint also alles zu überschreiben...

    Jetzt hab's ich hinbekommen. Ich hab's einfach in die Draw-Routine von dem Creator gesetzt, da wird das draw-Event ja gar nicht benötigt. Und jetzt geht's. :P
    Danke,
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:

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

  • Die Lösung zu deinem Problem lautet Variablen an und auszuschalten.

    Im Grunde ist das sehr einfach.

    Problem Nr. 1 und 3

    GML-Quellcode

    1. // Draw-Evet
    2. if(text_zeigen == true) {
    3. draw_text(15,15,"Hallo");
    4. }


    Der Text wird also nur angezeigt, wenn die Variable text_zeigen auf true (wahr) gestellt ist.

    Du kannst diese Variable in jedem anderen Event an und ausschalten.
    Um den Text nur eine bestimmte Zeit anzeigen zu lassen machst du dafür einfach einen Timer der die Variable umschaltet.


    Problem Nr. 2

    Hier ist die Lösung eine Kombination von mehreren Draw Funktionen.
    Hier ein Auszug aus der Hilfe:

    draw_rectangle(x1,y1,x2,y2,outline) Draws a rectangle. outline indicates whether only the outline must be drawn (true) or it should be filled (false).

    Im Grunde zeichnest du zuerst ein Rechteck dahin, wo der Text hin soll und dann den Text über das Rechteck.

    Beispiel:

    GML-Quellcode

    1. draw_set_alpha(0.5);
    2. draw_set_color(c_black);
    3. draw_rectangle(10,10,100,20,false);
    4. draw_set_alpha(1);
    5. draw_set_color(c_white);
    6. draw_text(12,12,"Hier ist der Text");


    Damit bekommst du einen schwarzen, halb durchsichtigen Balken hinter deinen nicht transparenten weissen Text..


    Das Ganze kann man noch weiter ausarbeiten, z.B. kannst du den statt einen einfach draw_rectangle ein Sprite als Hintergrund nehmen oder etwas anderes. Möglich ist es auch das Rechteck dynamisch in der Größe des Textes anzupassen z.B. so:

    GML-Quellcode

    1. text = "Hier ist der Text";
    2. draw_set_alpha(0.5);
    3. draw_set_color(c_black);
    4. draw_rectangle(10,10,4+string_width(text),20,false);
    5. draw_set_alpha(1);
    6. draw_set_color(c_white);
    7. draw_text(12,12,text);



    Problem Nr. 4

    Keine Ahnung, ich habe mich noch nie mit der F1 Hilfe auseinandergesetzt, auch ganz einfach weil sie recht Hässlich ist und schlecht formatieren lässt.

    Das Allerbeste ist, wenn du die Steuerung etc. während des Spielens erklährst und Credits irgendwo ins Menü oder im Hintergrund klebst. Die Hilfe über F1 ist wirklich eher eine Notlösung (wie ich finde)
  • ich hab nur Punkt 1 gelesn, ich war zu faul für den rest :)
    du kannst auch so machen

    Creat Event:

    GML-Quellcode

    1. text = "Hallo";


    Draw Event:

    GML-Quellcode

    1. draw_text(x,y, text);
    2. alarm[0] = 150;


    Alarm 0 Event:

    GML-Quellcode

    1. text = "";


    So kannst den text nach 5 sekunden wieder löschen, geht beides. also meines und das von dur'rean

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Vielen, vielen Dank Euch beiden für die Lösungen! Manches ist so einfach, daß man sich fast schämen muß, nicht selbst drauf gekommen zu sein... :D

    Ich denke, daß ich jetzt dann mit diesen Tipps das Spiel auch bald fertig bekomme. Lediglich für die Sache mit der Hilfe in F1 muß ich noch irgendwie eine Lösung finden. Ich fände es besser und für das Spiel vor allem unabdingbar, wenn einige Sprites bildlich erklärt werden könnten. Vielleicht fällt mir dazu noch etwas ein.

    Also, many, many thanks an Euch,

    Gruß Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para: