Texte am Bildschirm

  • GM 8

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

  • Texte am Bildschirm

    Hallo,
    ich möchte gerne in meinem Programm verschiedene Vis.- Pointer setzen.
    Mit Vis.- Pointer meine ich eine Meldung am Bildschirm. Also quasi my- Debug einrichten.
    (Bei Java wird es z.B. mit system.out.println(…..); in der Konsole realisiert.) D.h. ich möchte an verschiedenen Code- Stellen mir eine Meldung am Bildschirm ausgeben lassen:

    Z.B.
    If(2+2=4){ …. mache_es();} ->wird mache_es Script ausgeführt sein.

    Im mache_es Script:
    { …. system.out.println("Bin im mache_es. var xxx= " + xxx ); …}

    Die Funktionen … draw_text(x,y,string) funktionieren nur im Draw- event.
    Wie rufe ich die (z.B. draw_text( …) aus einem Script / Funktion …. Code aus?

    Gruß
    Georg
  • garnicht.
    Ich weiß nicht wie du das so richtig meinst, aber du könntest eine Variable auf false setzten; wenn nun 2+2 4 ist kannst du sie auf true setzen (im step). Und im Draw fragst du dann ab, ob die Variable auf true ist, wenn ja wird draw_text, wenn nicht, dann halt nicht. Ich weiß nicht ob du das so meinst.

    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.
  • Du könntest dir auch eine (globale) Variable anlegen, die deinen Debug-Text speichert, und diese Variable zeichnen lassen. Statt dann etwas direkt auf den Bildschirm zu schreiben, hängst du es nur an deine Debugvariable ran:

    GML-Quellcode

    1. global.debug_string = "Lorem ipsum dolor sit amet." + '#' + global.debug_string;
    2. // oder
    3. global.debug_string += "#Lorem ipsum dolor sit amet.";


    Bei der zweiten Variante müsstest du nur regelmäßig den Anfang des Strings löschen, damit neue Zeilen noch in den Bildschirm passen. (Aus Speichergründen solltest du das bei der ersten zwar auch tun, aber wen jucken schon die paar MB Text, wenn man mit dem GM arbeitet.)

    Allerdings würde ich dir raten, diese Zeilen lieber in eine Datei zu schreiben, anstatt auf den Bildschirm, da du so auch dann noch Zugriff drauf hast, wenn das Programm abgestürzt ist, oder zu Zeitpunkten zurückscrollen kannst, die schon etwas zurückliegen.
  • Hallo,
    danke für die schnelle Antwort. WOW :!:

    Es ist leicht realisierbar; - Texte, Werte … auf dem Bildschirm „zu bringen“
    Z.B.:


    Das alles wird im Draw Event (D&D) realisiert also alles (Texte ...) was man so auf dem Bildschirm anzeigen möchte.
    Was ich aber möchte, ist es auch Texte, Werte … auf dem Bildschirm „zu bringen“
    ABER direkt aus einem Script -> z.B.
    Code
    {
    var x = 333;
    ….
    draw_text(x,y,"bin im Code x= " +x); ....
    }
  • Also im allegemeinen geht das nicht. Also nicht sofort. Nur sozusagen im nächsten Step (im draw event über eine Variable)
    Sonst kannst du aber sowas wie show_message(string) verwenden. Die zeichnet eine Meldung sofort auf den Bildschirm, hällt allerdings das Spiel solange an bis du doort auf ok klickst. Also man kann es nicht im Hintergrund verwenden.
    Die einzige möglichkeit etwas direkt auf den Bildschirm zu bekommen ist mit screen_refresh() dies zeichnet den bildschirm miit den aktuellen Informationen wenn ich mich nicht irre.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • @ CAS
    Danke für den Hinweis, hier etabliert sich gerade Kern meiner Frage:
    Ich möchte gerne die „Zeit Leiste“ ???? verfolgen. Also mir einen Hinweis (Info) visualisieren, der mir Bestätigt, dass Funktion x, … Script y auch (JETZT) ausgeführt wird.
    Meines wissens werde ich es (nicht im GM – hier weis ich nicht wie ich es machen kann)
    mir einen Thread einbauen, der mir die Sache erledigt …

    @DragonGamer
    Auch dir vielen Dank für die rasche Antwort.
    Ich probiere es aus.

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

  • georg01 schrieb:

    Ich möchte gerne die „Zeit Leiste“ ???? verfolgen. Also mir einen Hinweis (Info) visualisieren, der mir Bestätigt, dass Funktion x, … Script y auch (JETZT) ausgeführt wird.


    Wenn du es nicht unbedingt im GM haben willst, kannst du dir ja mal dieses Tutorial anschauen. Wenn du am Anfang des Skriptes, das die Timeline ausführt, eine solche Ausgabe scheibst, siehst du sie in dem Moment auf der Konsole, wenn sie geschrieben wird.
  • Hallo,
    erstmal vielen dank für Ihre Antworten / Mühe!

    @-$Marvin$-

    wenn ich das jetzt richtig verstanden hab, dann willst du außerhalb des spielfensters texte drawn.
    Wollte einfach im Spielfenster, jedoch habe ich festgestellt, dass es nicht so einfach - wenn überhaupt möglich ist. Deshalb meine Frage an Forum; - ob es doch nicht eine Möglichkeit gäbe, die Texte aus den Script´s direkt zu drawn. -> Außerhalb, wäre natürlich perfekt.

    @CAS
    Wenn du es nicht unbedingt im GM haben willst, kannst du dir ja mal dieses Tutorial anschauen.
    Vielen dank für den tut. & deine Mühe! Habe es ausprobiert, -> leider ist „tail“ nicht in meiner Konsole integriert:


    Nun jetzt kommt es zum wesentlichen:
    Habe ich mich wirklich so Falsch ausgedrückt?
    Zitat:
    Wenn du es nicht unbedingt im GM haben willst …
    Meine letzte Fragen- Zeilen waren:
    Die Funktionen … draw_text(x,y,string) funktionieren nur im Draw- event.
    Wie rufe ich die (z.B. draw_text( …) aus einem Script / Funktion …. Code aus? …

    Mit der Konsole war nur ein Beispiel! von mir – wie ich es in Java (nach bedarf) so mache.

    Jetzt werde ich wahrscheinlich "gesteinigt". ;(

    Im GM- Debug (habe Heute herausgefunden) gibt es unter Tools das Message- Fenster. Die Funktion, welche die Nachricht an das Fenster sendet ist: show_debug_message(str)
    Und damit ist es auch möglich, aus beliebige Codenzeile, eine Textmeldung (auch Variablen lassen sich direkt mit string(val) Konvertieren) an das Fenster zu senden.


    Trotzdem Danke! :S


    Gruß
    Georg
  • Hallo,
    Deswegen steht im Tutorial auch, wie du dir tail für Windows holen kannst. -.-
    Das habe ich – sorry – später auch realisiert.
    Eine Antwort auf das tut wollte ich gerade senden – ich lasse es!
    Aber wenn du das Message-Fenster nutzt (wusste übrigens nicht, dass es das gibt), hat sich das ohnehin erledigt.
    Ja, -> Message- Fenster ist die Lösung die ich gesucht habe, vermute dass viele es nicht wussten – jetzt aber schon. :thumbsup:


    Gruß
    Georg