Startseite | Anpassen | Blog | Extras | Anmelden | Info
Handbuch | D&D icons | GML Parser | Archiv | Iso City
Benutzername: Passwort:  
Über | Funktionen | Verzeichnis | Banner | Kontakt

Den Game Maker benutzen
Den Game Maker benutzen

Neuzeichnen des Bildschirms

Normalerweise wird am Ende jedes Schrittes der Raum auf dem Bildschirm neugezeichnet. Aber unter seltenen Umständen musst du den Raum in anderen Momenten neuzeichnen. Dies kommt vor, wenn dein Programm die Kontrolle übernimmt. Zum Beispiel bevor eine lange Zeit geschlafen wird mag eine Neuzeichnung erforderlich sein. Auch wenn dein Code eine Meldung anzeigt und auf den Spieler warten möchte, eine Taste zu drücken, brauchst du eine Neuzeichnung dazwischen. Es gibt zwei verschiedene Routinen, um dies zu tun.

screen_redraw() Zeichnet den Raum durch Aufrufung aller Zeichnungs-Ereignisse neu.
screen_refresh() Erneuert den Bildschirm durch Benutzung des derzeitigen Raumbildes (ohne die Zeichnungs-Ereignisse auszuführen).

Um die zweite Funktion zu verstehen, musst du völlig verstehen,wie das Zeichnen intern funktioniert. Es gibt intern ein Bild, auf dem alles Zeichnen stattfindet. Dieses Bild ist auf dem Bildschirm nicht sichtbar. Nur am Ende jedes Schrittes, nachdem alles Zeichnen stattgefunden hat, wird das Bildschirm-Bild durch das interne Bild ersetzt. (Dies wird Doppel-Bufferung genannt.) Die erste Funktion zeichnet das interne Bild neu und erneuert dann das Bildschirm-Bild. Die zweite Funktion erneuert nur das Bild auf dem Bildschirm.

Nun solltest du erkennen, warum du keine Zeichnungs-Aktionen oder -Funktionen in anderen Ereignissen als dem Zeichnungs-Ereignissen benutzen kannst. Sie werden Dinge auf dem internen Bild zeichnen, aber diese werden auf dem Bildschirm nicht sichtbar sein. Und wenn die Zeichnungs-Ereignisse ausgeführt werden, wird zuerst der Raum- Hintergrund gezeichnet, wodurch alles, was du auf das interne Bild gezeichnet hast, gelöscht wird. Aber wenn du screen_refresh() nach deiner Zeichnung benutzt, wird das aktualisierte Bild auf dem Bildschirm sichtbar werden. Also ein Skript kann z.B. etwas Text auf den Bildschirm zeichnen, die Erneuerungs- Funktion aufrufen, und dann auf den Spieler warten, eine Taste zu drücken, wie in dem folgenden Teilstück-Code.

{
  draw_text(screen_width/2,100,'Drücke eine Taste, um Fortzufahren.');
  screen_refresh();
  keyboard_wait();
}

Bitte beachte dies, wenn du in einem anderen Ereignis als dem Zeichnungs-Ereignis zeichnest: Du zeichnest lediglich auf dem Bild, nicht in der Ansicht! Also benutzt du die selben Koordinaten wie wenn es keine Ansichten gäbe. Sei vorsichtig, wenn du diese Technik benutzt. Stelle sicher, dass du sie zuerst verstehst und beachtest, dass das Erneuern des Bildschirms etwas Zeit benötigt.

Wenn du den Raum selber zeichnest kann es nützlich sein, ihn überhaupt NICHT automatisch zeichnen zu lassen. Zum Beispiel möchtest du den Raum vielleicht nur alle fünf Schritte zeichnen. Du kannst die folgenden Funktionen für dies benutzen:

set_automatic_draw(value) Gibt an, ob der Raum automatisch neugezeichnet wird (true, standard) oder nicht (false).

Abschließend gibt es eine Funktion mit der du festlegen kannst, ob das Gezeichnete mit der Bildwiederholungsrate des Monitors angeglichen wird:

set_synchronization(value) Gibt an, ob das Gezeichnete mit der Bildwiederholungsrate des Monitors angeglichen wird.

You can also force a wait for the next vertical synchronization using the following function:

screen_wait_vsync() Wartet auf die nächste vertikale Synchronisation des Monitors.

Suche Suche


Alternative Versionen Alternative Versionen

Du kannst dieses Handbuch auch auf einer langen Seite (± 1.5 mb) ansehen.

Auch verfügbar in: Englisch Französisch

ZIP Download helpfile

Werbung Werbung

GameMaker Handbuch