Level-Ergebnis

  • GM 8
  • Level-Ergebnis

    Hallo, ich hab schon wieder ein Problem(chen), das ich nicht lösen kann:

    Würde gerne in dem Spiel nach jedem Level eine Zusammenfassung der erspielten Münzen, Daten, Punkte, gekillten Objekte etc. anzeigen. Größe wird sein so etwa die Größe eines üblichen Highscores, also ca. 360*400px. Ein neuer Raum dafür geht nicht, weil sonst das Game ausgeblendet wird. Habe daraufhin ein eigenes Background für Messages erstellt, aber GML weigert sich hartnäckig, mit "draw_text" irgendwas da drauf zu schreiben. Er schreibt es immer ins eigentliche Spielfenster, wo es gar nicht hin soll. Mache ich was falsch oder geht das mit den message_backgrounds grundsätzlich nur mit "show_message"?
    Wie kann ich dann ein kleines Fenster einblenden, an das aber Variablen übergeben werden können?

    Bin für Tipps dankbar, sitze schon seit heute früh an dem Problem, ohne auch nur einen Zentimeter weitergekommen zu sein :(
    Hätte auch nie gedacht, daß so kleine Sachen einen so aufhalten können...
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Archie schrieb:

    Habe daraufhin ein eigenes Background für Messages erstellt, aber GML weigert sich hartnäckig, mit "draw_text" irgendwas da drauf zu schreiben. Er schreibt es immer ins eigentliche Spielfenster, wo es gar nicht hin soll. Mache ich was falsch oder geht das mit den message_backgrounds grundsätzlich nur mit "show_message"?
    Ein kleiner blick unter den Befehl "message_backgrounds" in der Hilfe des Game Makers würde dir diese Frage sehr schnell, und ohne große Zeitverschwendung beantworten:

    Spoiler anzeigen
    show_message(str) Displays a dialog box with the string as a message.
    show_message_ext(str,but1,but2,but3) Displays a dialog box with the string as a message and up to three buttons. But1, but2 and but3 contain the button text. An empty string means that the button is not shown. In the texts you can use the & symbol to indicate that the next character should be used as the keyboard shortcut for this button. The function returns the number of the button pressed (0 if the user presses the Esc key).
    show_question(str) Displays a question; returns true when the user selects yes and false otherwise.
    get_integer(str,def) Asks the player in a dialog box for a number. str is the message. def is the default number shown.
    get_string(str,def) Asks the player in a dialog box for a string. str is the message. def is the default value shown.
    message_background(back) Sets the background image for the pop-up box for any of the functions above. back must be one of the backgrounds defined in the game. Unfortunately, alpha values are not taken into account. However, if the left-bottom pixel has an alpha value of 0, all pixels with that color will be considered transparent.


    Zu deiner nächsten Frage:
    Wie kann ich dann ein kleines Fenster einblenden, an das aber Variablen übergeben werden können?
    Das kommt drauf an wie du kleines Fenster genau definierst. In einem neuen Fenster das Anzeigen zu lassen, geht denke ich nur über eine DLL.
    Ich würde dies mit einem Objekt machen, welches das genaue Verhalten beinhaltet, aber kein Create-Event / kein Text hat. Dies gibst du als Variable dann beim erstellen mit also (es handelt sich zwar dann auch nur wieder um draw_text, im Zusammenhang mit anderen Funktionen, jedoch kann man so auch gut Text anzeigen lassen, diese mit draw_set_halign/valign richtig ausrichten, und den Background denn du haben willst dahinter Zeichnen. Außerdem ist es für alle Texte jeder Art dann verwendbar, und du hast die volle Kontrolle, welche Objekte noch aktiv, bzw dann inaktiv sein sollen):

    GML-Quellcode

    1. var _new;
    2. _new = instance_create(0,0,opText);
    3. _new.text = "Text text text text text text";


    Oder, aber ich glaube das is für dich keine Lösung da du dein Hintergrund haben willst, du benutzt Splash Screens, einfach mal in der Hilfe nachschlagen (wobei ich diese Persöhnlich eher unpraktisch finde).

    Gruß,
    Mokuyobi
    木曜日 (Mokuyōbi)
  • Mokuyobi schrieb:

    var _new;
    _new = instance_create(0,0,opText);
    _new.text = "Text text text text text text";

    Ja aber wie bekomme ich das mal ANGEZEIGT?? Immer, wenn ich versuche, etwas in einem draw_event wiederzugeben, wird es mir in das Hauptfenster geklatscht. Das (neue) Objekt selber verschwindet dafür in dem Augenblick, indem "draw" verwendet wird.
    Wie also kann ich das anzeigen???

    Eine andere Idee war noch, ein Objekt aus dem Hintergrund zu erstellen und in dessen draw-Event dann den Text zu schreiben, aber auch hier das Gleiche: das Objekt verschwindet auf merkwürdige Art, der Text erscheint, aber im Hauptfenster. *grumpf*
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • J@kob schrieb:

    zeig doch mal deinen genauen code, mit dem du versuchst zu zeichnen.



    Ich glaube net, daß es viel bringt, hier Code zu posten, der nicht funzt, außerdem steht ja oben bereits eine Möglichkeit von Mokyoby. Das Problem, das überall gleich ist, ist dieses:
    Ich kann kein Objekt erstellen und es dann mit Text füllen. Immer wenn ich es versuche, wird das Objekt selber wieder ausgeblendet und der Text woanders geschrieben. Selbst wenn ich draw_text (und das ist das Stichwort) ins Draw-Event des neuen Objektes lege.
    Auch bei dem Beispiel von Mokyobi wird das Objekt nur dann eingeblendet, wenn es ohne Draw-Befehle ist, falls doch, wird es ausgeblendet und der Text entsprechend in den Room geschrieben.
    Aber es muß doch möglich sein, ein Objekt (oder ein anderes kleines Fenster) einzublenden mit formatiertem Text....
    Archie
    PS: Habe auch schon versucht, ein Rechteck mit 0.5-Alpha-Wert als Hintergrund anzulegen, ginge ja zur Not auch - aber das lässt sich dann ohne weiteres nicht mehr entfernen... :(

    Es würde mir z.B. helfen, wenn mir jemand sagen könnte, wie man in dem obigen Beispiel den Trick hinbekommt, daß nicht nur das Objekt, sondern auch der Text, gespeichert in der Variablen "_new.text" angezeigt würde... Der fehlt nämlich immer noch...
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:

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

  • Benutzer online 2

    2 Besucher