So, mein erstes Tut.
Ich habe ihr eine gute Lösung zum Spiel pausieren. Inkl. Zoomeffekt.:
- Spiel pausieren ...
- Zoom-Effekt
- Speicher wird nicht überlastet.
Es ist echt einfach! Und so funktionierts:
Eigentlich werden nur alle Instancen deaktiviert. Das ist eine Funktion die es zumindest ab V6.1 gibt.
Der Befehl lautet "instance_deactivate_all(1)". Die "1" in der Klammer bedeutet das alle Instancen deaktiviert werden sollen, außer die, die den Befehl ausführt. In der Hilfedatei kann man das nachlesen. Merken: 1=true; 0=false.
- Wenn die P-Taste gedrückt wird, werden alle außer die, die es ausführt, deaktiviert. Denn wenn diese auch noch deaktiviert wird, könnte man die Pause nicht mehr unterbrechen.
- Da alle deakt. Instancen auch nicht mehr gezeichnet werden, müssen wir vorher ein Screenshot machen.
- Die Zoomfuntion ist einfach nur zum verschönern da. Falls das unerwüscht ist, kann man diese löschen. Indem man die Zeilen wo ZOOM steh löscht. Einfach mal mit dem Code "spielen". Nur so versteht man alles.
Eins darf man nicht vergessen:
- Die Pausefunktion stoppt nicht nur alle Instancen, sondern werden deaktiviert. Zur Pausefunktion würde nur die "instance_deactivate_all(1)" reichen. Da es ein bisschen "blöd" aussieht ;), wenn alle plötzlich weg sind, machen wir einfach ein Screenshot. Das wir nacher zeichnen.
- Es gibt auch Spiele die bei der Pause nicht immer alle Instancen anzeigen. Sonst könnte man ja schummeln.
Das kann man erreichen, wenn man die Reihenfolge von "instance_deactivate_all(1)" und "sprite_create_from_screen" geschickt ändert.
Denn wisse: Die Codes die geschrieben werden, in einem Script, werden nicht auf einmal ausgeführt. Sondern von oben nach unten. Nur geht das so schnell (standard 1sek/30), dass man das evtl. denken kann.
Das ist wichtig für alle künftige Programmierungen. Man muss überlegen welche Zeile oder Code jetzt zuerst ausgeführt werden soll.
Deshalb habe ich hier in diesem Tut auch die Befehle "exit" eingefügt.
Da sieht ganz gut dass der Code wie eine Liste abgerufen wird.
Wenn ich folgedes schreibe:
if pause=0 {pause=1};
if pause=1 {pause=0};
ist das ja für den Ar.... ;). Sorry für das gute deutsch.
Denn erst wird die Variable "Pause" in 1 geändert. Und dann wieder in 0.
Also schreiben wir:
if pause=0 {pause=1; exit};
if pause=1 {pause=0; exit};
So wird, falls Pause=1 ist, Pause in 0 umgewandelt und das weitere verarbeiten des Scriptes beendet (abb.).
Und bei Pause=1 in 0 und wieder abgebrochen. Wobei hier jetzt das untere Exit überflüssig ist.
PS: Ich hatte mal ein noch viel besseres Pause-File. Wegen extremen Datenverlust nicht mehr vorhanden :(.
Falls noch Fragen auftauchen, bin ich für euch da.
Viel Spass
Pause.zip wurde 8 mal heruntergeladen. Und Pause2.zip siehe unten.
Ich habe ihr eine gute Lösung zum Spiel pausieren. Inkl. Zoomeffekt.:
- Spiel pausieren ...
- Zoom-Effekt
- Speicher wird nicht überlastet.
Es ist echt einfach! Und so funktionierts:
Eigentlich werden nur alle Instancen deaktiviert. Das ist eine Funktion die es zumindest ab V6.1 gibt.
Der Befehl lautet "instance_deactivate_all(1)". Die "1" in der Klammer bedeutet das alle Instancen deaktiviert werden sollen, außer die, die den Befehl ausführt. In der Hilfedatei kann man das nachlesen. Merken: 1=true; 0=false.
- Wenn die P-Taste gedrückt wird, werden alle außer die, die es ausführt, deaktiviert. Denn wenn diese auch noch deaktiviert wird, könnte man die Pause nicht mehr unterbrechen.
- Da alle deakt. Instancen auch nicht mehr gezeichnet werden, müssen wir vorher ein Screenshot machen.
- Die Zoomfuntion ist einfach nur zum verschönern da. Falls das unerwüscht ist, kann man diese löschen. Indem man die Zeilen wo ZOOM steh löscht. Einfach mal mit dem Code "spielen". Nur so versteht man alles.
Eins darf man nicht vergessen:
- Die Pausefunktion stoppt nicht nur alle Instancen, sondern werden deaktiviert. Zur Pausefunktion würde nur die "instance_deactivate_all(1)" reichen. Da es ein bisschen "blöd" aussieht ;), wenn alle plötzlich weg sind, machen wir einfach ein Screenshot. Das wir nacher zeichnen.
- Es gibt auch Spiele die bei der Pause nicht immer alle Instancen anzeigen. Sonst könnte man ja schummeln.
Das kann man erreichen, wenn man die Reihenfolge von "instance_deactivate_all(1)" und "sprite_create_from_screen" geschickt ändert.
Denn wisse: Die Codes die geschrieben werden, in einem Script, werden nicht auf einmal ausgeführt. Sondern von oben nach unten. Nur geht das so schnell (standard 1sek/30), dass man das evtl. denken kann.
Das ist wichtig für alle künftige Programmierungen. Man muss überlegen welche Zeile oder Code jetzt zuerst ausgeführt werden soll.
Deshalb habe ich hier in diesem Tut auch die Befehle "exit" eingefügt.
Da sieht ganz gut dass der Code wie eine Liste abgerufen wird.
Wenn ich folgedes schreibe:
if pause=0 {pause=1};
if pause=1 {pause=0};
ist das ja für den Ar.... ;). Sorry für das gute deutsch.
Denn erst wird die Variable "Pause" in 1 geändert. Und dann wieder in 0.
Also schreiben wir:
if pause=0 {pause=1; exit};
if pause=1 {pause=0; exit};
So wird, falls Pause=1 ist, Pause in 0 umgewandelt und das weitere verarbeiten des Scriptes beendet (abb.).
Und bei Pause=1 in 0 und wieder abgebrochen. Wobei hier jetzt das untere Exit überflüssig ist.
PS: Ich hatte mal ein noch viel besseres Pause-File. Wegen extremen Datenverlust nicht mehr vorhanden :(.
Falls noch Fragen auftauchen, bin ich für euch da.
Viel Spass
Pause.zip wurde 8 mal heruntergeladen. Und Pause2.zip siehe unten.
57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von DanielGM61 ()