Video: Why Does Celeste Feel So Good to Play? | Game Maker's Toolkit 2025
Ein Problem beim Zeichnen von Objekten in GameMaker: Studio, auf das Sie stoßen können, ist, dass Schatten normalerweise nicht Quadrat mit starren Linien. Die folgenden Verfahren zeigen Ihnen, wie Sie eine Oberfläche erstellen, um Schatten für die Wände zu zeichnen.
Führen Sie die folgenden Schritte aus, um ein neues Objekt für den Oberflächeneffekt zu erstellen:
-
Klicken Sie im geöffneten Surfaces-Lernprogramm in der Ressourcenbaumstruktur mit der rechten Maustaste auf Objekte, und wählen Sie Objekt erstellen aus.
Die Objekteigenschaften werden angezeigt.
-
Geben Sie im Feld Name den Namen obj_Shadow_Surface ein.
-
Geben Sie im Feld Tiefe den Wert -900 ein.
Diese Tiefe wird den Schatten unter die Mauer-Instanzen ziehen, so dass Sie den Schatteneffekt niemals auf oder über der Wand selbst sehen werden.
-
Wählen Sie Ereignis hinzufügen → Anlegen.
Das Ereignis erstellen wird im Abschnitt Ereignisse angezeigt.
-
Ziehen Sie eine ausführbare Code-Aktion von der Registerkarte "Steuerung" in den Abschnitt "Aktionen".
Ein Codefenster wird angezeigt.
-
Geben Sie im Codefenster Folgendes ein:
surf = -1;
Dieser Code erstellt eine Variable für das Surface, erstellt aber nicht das Surface selbst.
-
Klicken Sie auf das grüne Häkchen.
Das Codefenster wird gespeichert und geschlossen.
Sie erstellen den Oberflächeneffekt im Draw Event, der bei jedem Schritt des Spiels ausgelöst wird.
Zunächst wird jedoch gezeigt, wie Sie den Surface-Effekt entfernen können, wenn Sie ihn nicht mehr benötigen.
-
Wählen Sie in den Obj_Shadow_Surface-Objekteigenschaften Ereignis hinzufügen → Andere → Raumende.
Das Raumabschlussereignis wird im Abschnitt Ereignisse angezeigt.
-
Ziehen Sie eine ausführbare Code-Aktion von der Registerkarte "Steuerung" in den Abschnitt "Aktionen".
Ein Codefenster wird angezeigt.
-
Geben Sie im Codefenster Folgendes ein:
if surface_exists (surf) {surface_free (surfen);}
-
Klicken Sie auf das grüne Häkchen.
Das Codefenster wird gespeichert und geschlossen.
Dieser Code gibt den Speicher frei, den das Surface verwendet hat.
Wenn der Speicher nicht freigegeben wird, wenn die Oberfläche nicht mehr benötigt wird, kann das Spiel ein Speicherleck entwickeln, das schließlich Ihr Spiel zum Absturz bringt.
