Aktualisierung der Anzeige innerhalb eines Events

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

  • Aktualisierung der Anzeige innerhalb eines Events

    Hi,

    hoffe, ich habe jetzt nicht doppelt gepostet (Mein 1. Beitrag ;o)
    Ich habe mich als Anfänger durch die Helps und Forumposts durchgekämpft, aber leider keine Lösung gefunden.

    Versuche innerhalb eines Maus-Events (linke Maustaste) die Anzeige verschiedener Objekte nach Veränderungen zu aktualisieren. Nutze dazu ein Script (scr_Kartenwerte) das wunderbar funktioniert, um alle Objekte in meinem Room mit den neuesten veränderten Werten anzuzeigen.

    Wenn ich allerdings mehrere verschiedene Veränderungen hintereinander sowohl durch show_message("Info für den User" wie auch durch script_execute(scr_Kartenwerte) aktualisiert anzeigen lassen will --- dann kommen alle messages prima hintereinander, aber die Aktualisierung der Objekte wird nur einmal (am Ende des Events - dann aber korrekt) ausgeführt.

    Wird die Objektaktualisierung stets nur 1 x am Ende des Events ausgeführt oder was kann ich tun, um innerhalb des gleichen Events mehrfach meine Objekte hintereinander aktualisiert anzuzeigen?

    Danke für Eure Hilfe ...

    Ein Code-Auszug als Beispiel: :?:
    if KarteName == WegName1 || KarteName == WegName2 // Logikcheck: Passt Karte zum Weg ?
    {
    (self).image_single = global.Spieler // Weg auf Bild des Spielers setzen
    ds_list_replace(global.WS,WegNr,global.Spieler) // Weg in Besitz des Spielers ändern
    ds_list_add(global.KA,KarteNr) // Karte in Ablagestapel legen
    ds_list_delete(global.KZ1,0) // Gezogene Karte löschen

    script_execute(scr_Kartenwerte) // Anzeige der Objekte aktualisieren
    show_message("KARTENWERT 1##Weg auf Bild des Spielers setzen #& Gezogene Karte löschen ...")
    script_execute(scr_Inselbesitz) // Anzeige Inselbesitz wegen neuem Weg aktualisieren
    script_execute(scr_Kartenwerte) // Anzeige der Objekte aktualisieren
    show_message("KARTENWERT 2##Inselbesitz ...")
    Chisao
  • Game Maker ist Step basiert, das weißt du ja schon.
    Aber das bedeutet, das alles, was innerhalb eines Steps gemacht wird erst eine Wirkung hat, wenn der Step fertig ist. Das lässt deine verschiedenen Aktualisierungen wie eine einzige wirken, die finden zwar nacheinander statt, die Auswirkungen werden aber alle erst zusammen wirksam, wenn der Step fertig ist, sodass es wie eine Aktualisierung aussieht.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Heißt das definitiv, innerhalb dieses 1 Steps (Maus-Event - linke Maustaste) habe ich gar keine Chance, die Anzeige verschiedener Objekte in mehreren Zwischenschritten zu erzwingen?

    Das wäre für mein Konzept des Test-Game nämlich absolut doof, wenn die Aktualisierung der Objekte grundsätzlich nur einmal (am Ende des Events - dann aber für alle Objekte) ausgeführt werden kann. Die Zwischenschritte sollte der Spieler nämlich optisch in der Folge erkennen können, damit das Endergebnis nachvollziehbar bleibt. Und nur mitt Info-Messages, die ja innerhalb eines Steps funktionieren, das wäre sehr unschön.

    Oder gibt es doch vielleicht noch einen Trick / Umgehung, um innerhalb des gleichen Events mehrfach verschiedene Objekte hintereinander verschieden aktualisiert anzuzeigen?
    Chisao
  • Original von chisao
    Heißt das definitiv, innerhalb dieses 1 Steps (Maus-Event - linke Maustaste) habe ich gar keine Chance, die Anzeige verschiedener Objekte in mehreren Zwischenschritten zu erzwingen?

    Afaik geht das nicht.
    (Da die darstellung schließlich wie ein Film abläuft.
    Ein Step - Ein Bild)
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • ich bin mir ja nicht sicher ob das hilft, aber es gibt die befehle screen_redraw() und screen_refresh(). mit deren hilfe kannst du wärend eines steps den screen aktualisieren. screen_redraw() führt zusätzlich den draw event neu aus, das tut screen_refresh() nicht.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • screen_redraw() bzw. screen_refresh() - das ist die Lösung !

    :wink: 1000 Dank WIN,

    mit screen_redraw() bzw. screen_refresh() bekomme ich genau das was ich benötige.

    Der Update meiner Objekte kann damit innerhalb 1 Steps beliebig oft erfolgen. Juhuuuu !
    Chisao