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

Instanzen deaktivieren

Instanzen deaktivieren

Wenn du einen großen Raum erstellst, zum Beispiel bei Plattformspielen, kombiniert mit einem kleinen View, liegen viele Instanzen ausserhalb des sichtbaren Bereiches. Diese Instanzen sind aber trotzdem aktiv und führen ihre "events" durch. Auch bei Kollisionsprüfungen werden diese berücksichtigt. Dies kann viel CPU Leistung verbrauchen, was oft nicht erwünscht ist. (Es ist beispielsweise unwichtig ob sich Instanzen ausserhalb des Views bewegen.) Um dieses Problem zu lösen enthält Game Maker Funktionen zum Deaktivieren und Aktivieren von Instanzen. Bevor du sie benutzt musst du verstehen wie sie funktionieren.

Wenn du Instanzen deaktivierst sind sie in gewissem Sinne nicht existent für das Spiel. Sie sind nicht mehr sichtbar und ihre Events werden nicht ausgeführt.
Somit existieren sie für alle Aktionen und Funktionen nicht mehr. Dies spart Rechnerleistung aber sei vorsichtig. Wenn du z.B. alle Instanzen eines Objektes deaktivierst kannst du sie nicht löschen (Weil sie nicht existieren.). So kann ein vom Spieler gefundener Schlüssel keine deaktivierte Tür öffnen.

Der schlimmste Fehler, den du machen kannst, ist die Instanz zu deaktivieren welche für das Aktivieren zuständig ist. Um dies zu verhindern haben einige Funktionen hier die Möglichkeit sich nicht selbst zu deaktivieren.

Dies sind die möglichen Funktionen:

instance_deactivate_all(notme) Deaktiviert alle Instanzen im Raum. Wenn notme true ist wird die ausführende Instanz nicht deaktiviert (Was normalerweise das ist was du willst.).
instance_deactivate_object(obj)  Deaktiviert alle Instanzen im Raum für das gegebene Objekt. Du kannst auch "all" für alle Instanzen oder die ID einer bestimmten Instanz angeben.
instance_deactivate_region(left, top, width, height, inside, notme) Deaktiviert alle Instanzen in der angegebenen Region (dessen Umrisse im Bereich liegen). Wenn inside false ist werden alle Instanzen ausserhalb der Region deaktiviert.Wenn notme true ist wird die ausführende Instanz nicht deaktiviert (Was normalerweise das ist was du willst.).
instance_activate_all()  Aktiviert alle Instanzen im Raum.
instance_activate_object(obj) Aktiviert alle Instanzen im Raum für das gegebene Objekt. Du kannst auch "all" für alle Instanzen oder die ID einer bestimmten Instanz angeben.
instance_activate_region(left, top, width, height, inside) Aktiviert alle Instanzen in der angegebenen Region. Wenn inside false ist werden alle Instanzen ausserhalb der Region deaktiviert.

Zum Beispiel, um alle Instanzen ausserhalb des Views zu deaktivieren kannst du den folgenden Code im Step Event des bewegenden Objekts angeben:

{
instance_activate_all();
instance_deactivate_region(view_left[0],view_top[0],
view_width[0],view_height[0],false,true);
}

In der Praxis wirst du wahrscheinlich eine Region nutzen die etwas grösser ist als der View.

Suche Suche


Alternative Versionen Alternative Versionen

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

Auch verfügbar in: Niederländisch Englisch Französisch

ZIP Download helpfile

Werbung Werbung

GameMaker Handbuch