Dieser Tipp benötigt die registrierte Version des Game Makers und funktioniert ab Version 6.1.
Hiermit könnt ihr euer Spiel "anhalten", ohne die Engine des Spieles anzuhalten.
Dadurch sind z.B. animierte Pause Screens, In-Game Menüs oder Textboxen realisierbar, bei denen das Spiel an sich nicht weiterlaufen soll.
Erstellt ein Objekt, ich nenne es mal obj_Pause. Dieses Objekt wird das einzige sein, das während des Stillstands noch etwas ausführen kann.
Im Create Event komm folgendes rein:
var_pause ist die Variable, die bestimmt ob gerade Pause ist. 0 heißt nein, 1 heißt ja.
Im Step Event wird dann folgender Code verwendet:
Alles anzeigen
Durch diesen Code wird das Spiel beim Drücken der Pause-Taste dazu veranlasst, beim nächsten Step das Bild nicht auf den Bildschirm sondern in einen internen Zwischenspeicher zu zeichnen. Danach werden alle Objekte ausser das Pause Objekt selber deaktiviert.
Wird dann wieder die Pause-Taste betätigt wird der interne Zwischenspeicher wieder gelöscht und die Objekte werden wieder aktiviert, das Spielgeschehen also wieder in Gang gesetzt.
Um nun den Zwischenspeicher auch anzeigen zu lassen muss folgendes im Draw Event untergebracht werden:
Das wars nun auch schon, ziemlich einfaches Skript und doch sehr wirkungsvoll, und einer der guten Pause Modi den man mit dem Game Maker 6.1 realisieren kann.

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.
Hiermit könnt ihr euer Spiel "anhalten", ohne die Engine des Spieles anzuhalten.
Dadurch sind z.B. animierte Pause Screens, In-Game Menüs oder Textboxen realisierbar, bei denen das Spiel an sich nicht weiterlaufen soll.
Erstellt ein Objekt, ich nenne es mal obj_Pause. Dieses Objekt wird das einzige sein, das während des Stillstands noch etwas ausführen kann.
Im Create Event komm folgendes rein:
var_pause ist die Variable, die bestimmt ob gerade Pause ist. 0 heißt nein, 1 heißt ja.
Im Step Event wird dann folgender Code verwendet:
GML-Quellcode
- if (keyboard_check_pressed(vk_pause)) then {
- if (var_pause=1){ // es ist gerade Pause, alle Objekte wieder aktivieren
- var_pause=0;
- surface_free(mysurface);
- instance_activate_all();
- }
- else if (var_pause=0){// es ist keine Pause, das aktuelle Bild mit dem nächsten Step einfrieren
- mysurface=surface_create(view_wport[0],view_hport[0]); //erstellt den Zwischenspeicher
- surface_set_target(mysurface);
- screen_redraw(); //zeichnet in den Zwischenspeicher
- surface_reset_target() ;
- instance_deactivate_all(true); //deaktiviert alle Objekte
- var_pause=1;}
- }
Durch diesen Code wird das Spiel beim Drücken der Pause-Taste dazu veranlasst, beim nächsten Step das Bild nicht auf den Bildschirm sondern in einen internen Zwischenspeicher zu zeichnen. Danach werden alle Objekte ausser das Pause Objekt selber deaktiviert.
Wird dann wieder die Pause-Taste betätigt wird der interne Zwischenspeicher wieder gelöscht und die Objekte werden wieder aktiviert, das Spielgeschehen also wieder in Gang gesetzt.
Um nun den Zwischenspeicher auch anzeigen zu lassen muss folgendes im Draw Event untergebracht werden:
Das wars nun auch schon, ziemlich einfaches Skript und doch sehr wirkungsvoll, und einer der guten Pause Modi den man mit dem Game Maker 6.1 realisieren kann.

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.
"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
- Joseph Weizenbaum