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

Pfade

In fortgeschrittenen Spielen soll öfters eine Instanz einen bestimmten Pfad folgen. Obwohl so etwas mit Timer oder Code möglich wäre, ist das ziemlich kompliziert. Pfade sind dafür besser geeignet. Die Idee ist einfach. Du bestimmst einen Pfad durch Zeichnen. Nun kannst du eine Aktion erstellen, z. B. im create event. Du befiehlst dem Objekt, einem bestimmten Pfad zu folgen. Dieses Kapitel beschreibt diesen Vorgang im Detail.

Pfade definieren

Um einen Pfad deinem Spiel hinzuzufügen, wähle Add Path vom Add Menü. Das folgende Dialogfenster wird geöffnet (in dem Beispiel haben wir bereits einen kleinen Pfad hinzugefügt).

/library/manual/images/form_path.jpg

Oben links im Fenster kannst du den Namen des Pfades setzen. Darunter findest du die Punkte, die den Pfad bestimmen. Jeder Punkt hat eine Position und eine Geschwindigkeit (speed, kurz sp.). Je nachdem, wie du den Pfad nutzt, ist die Position entweder absolut, d.h. die Instanz, für die du später den Pfad nutzt, wird ihm genau an dieser Stelle folgen, oder relativ, d.h. die Instanz startet immer mit der ersten Position des Pfades und folgt dem Pfad von da an. Die Geschwindigkeit soll wie folgt verstanden werden: Ein Wert von 100 ist die originale Geschwindigkeit der Instanz für den Pfad. Eine niedrigerer Wert verringert die Geschwindigkeit, ein höherer Wert erhöht sie (er zeigt also den Prozentsatz der aktuellen Geschwindigkeit). Die Geschwindigkeit wird zwischen den Punkten interpoliert, sie kann also etwas abweichen.

Um einen Punkt hinzuzufügen drücke den Add Knopf. Eine Kopie des aktuell gewählten Punktes wird gemacht. Du kannst jetzt die aktuelle Position und Geschwindigkeit ändern, indem du Werte überschreibst. Immer wenn du einen Punkt in der Liste wählst, kannst du auch dessen Werte ändern. Drücke Insert um einen neuen Punkt vor dem aktuellen einzufügen, und Delete um den aktuellen Punkt zu löschen.

Rechts im Dialogfenster siehst du den aktuellen Pfad. Der rote Punkt zeigt den aktuell gewählten Kontrollpunkt. Die blauen Punkte sind die anderen Kontrollpunkte. Das grüne Quadrat zeigt die Position, an der Pfad startet. Du kannst den Pfad auch mit der Maus ändern. Klick irgendwo in das Bild, um einen Punkt hinzuzufügen. Klicke auf einen existierenden Punkt und ziehe in, um die Position zu ändern. Wenn du die <shift> Taste während des Klickens auf einen Punkt hältst, fügst du einen Punkt ein. Schließlich kannst du die rechte Maustaste verwenden, um Punkte zu entfernen. (Auf diese Art kannst du aber nicht die Geschwindigkeit ändern.) Normalerweise rasten die Punkte im Gitter ein. Die Gitter-Definitionen kannst du an der oberen Werkzeug-Leiste ändern. Hier kannst du auch bestimmen, ob das Gitter sichtbar sein soll oder nicht. Wenn du einen Punkt exakt positionieren willst, halte die <alt>-Taste beim Hinzufügen oder Bewegen gedrückt.

Du kannst die Form eines Pfades auf zwei Weisen beeinflussen. Erstens durch die Art der Verbindung. Du kannst entweder direkte Verbindungen oder sanfte Kurven nehmen. Zweitens kannst du angeben, ob der Pfad geschlossen sein soll oder nicht.

Auf der Toolbar gibt es einige wichtige Knöpfe. Von links nach rechts haben sie die folgenden Bedeutungen. Der erste schließt das Fenster und speichert den Pfad, wenn du fertig bist. (Wenn du die Änderungen nicht speichern möchtest, klicke auf das X im Fenstertitel.) Als nächstes gibt es den Knopf, der Änderungen Rückgängig macht.

Die daraufhin folgenden Knöpfe erlauben dir den Pfad zu leeren, die Reihenfolge der Punkte umzudrehen, ihn zu verschieben, ihn horizontal zu spiegeln, ihn vertikal zu drehen, ihn zu rotieren und ih zu skalieren. Die nächsten Knöpfe sind für das Bewegen der Ansicht (nicht des Pfades selbst; Der aktuelle Ansichtsbereich wird oben in der Toolbar angezeigt) und um die Ansicht zu zentrieren.

Als nächstes kannst du die Gittergröße bestimmen und festlegen, ob im Gitter eingerastet werden soll. Schließlich gibt es einen Knopf um einen bestimmten Raum als Hintergrund anzuzeigen. Damit kannst du den Pfad einfach im Raum ausrichten, z.B. für eine Rennstrecke, sodass die Instanzen später der korrekten Strecke folgen. (Dies ergibt nur Sinn, wenn du absolute Pfade verwendest; siehe unten.)

Pfade Objekten zuweisen

Um einen Pfad der Instanz eines Objektes zuzuweisen, kannst du die Pfad-Aktion in einem Ereignis platzieren, wie z.B. im create event. Für diese Aktion musst du einen Pfad aus dem herunterklappenden Menü auswählen. Es gibt auch weitere Werte, die du festlegen kannst.

Du musst den Pfad, dem gefolgt werden soll, sowie die Geschwindigkeit in Bildpunkten pro Schritt festlegen. Wenn die Geschwindigkeit positiv ist, startet die Instanz am Anfang des Pfades. Wenn sie negativ ist, startet sie am Ende. Bedenke, dass wenn du den Pfad festgelegt hast, du die aktuelle Geschwindigkeit relativ zu dieser festgelegten Geschwindigkeit festlegst. Es gibt auch eine Aktion, mit der du die Geschwindigkeit ändern kannst, in der der Pfad ausgeführt wird. Du kannst davon Gebrauch machen um z.B. die Instanz langsamer oder schneller werden zu lassen während sie dem Pfad folgt. Beachte, dass die normale Geschwindigkeit ignoriert wird (eigentlich wird sie auf 0 gesetzt), wenn ein Pfad ausgeführt wird. Weiterhin haben Dinge wie Gravitation und Reibung keinen Einfluss auf die Bewegung auf dem Pfad.

Als nächstes legst du das Schluss-Verhalten (end behavior) fest, das bestimmt, welches passieren soll, wenn das Ende des Pfades erreicht ist. Du kannst die Bewegung stoppen und den Pfad damit Beenden. Du kannst den Pfad auch von vorne beginnen lassen, die Instanz springt dann zurück zu dem Punkt an dem der Pfad gestartet wurde, und führt den Pfad erneut aus. Eine dritte Option erlaubt es dir, den Pfad von der derzeitigen Position aus neuzustarten, die Instanz folgt dann wieder dem Pfad, aber nun von seiner jetzigen Position aus (Das ist dasselbe, wie wenn der Pfad in sich geschlossen ist). Als Letztes kannst du wählen, dass die Bewegung rückwärts abläuft, und die Instanz damit auf dem Pfad zurückbewegt wird. Beachte, dass am Ende des Pfades zusätzlich das end of path event (Ende des Pfades-Ereignis) ausgeführt wird; siehe unten.

Schließlich kannst du einstellen ob der Pfad absolut oder relativ sein soll. Ein absoluter Pfad wird an der Stelle ausgeführt, an der er festgelegt wurde. Die Instanz wird an die Startposition gesetzt und von dort aus bewegt (bzw. von der Endposition aus wenn die Geschwindigkeit negativ ist). Das ist nützlich wenn du z.B. eine Rennstrecke und einen Pfad dafür angelegt hast. Wenn du relative auswählst fängt die Instanz dem Pfad von ihrer derzeitigen Position aus zu folgen. Das ist nützlich wenn die Instanz eine Bewegung an Ort und Stelle ausführen soll. Zum Beispiel Raumschiffe in einem "Space Invaders"-Spiel können einen bestimmten Zug von ihrer Position aus machen.

Wenn du die Instanz auf eine andere Position auf dem Pfad platzieren willst, kannst du die Aktion set the path position (Setze die Pfad-Position) benutzen. Eine Pfad-Position liegt immer zwischen 0 und 1, wobei 0 für die Startposition und 1 für die Endposition des Pfades steht. Beachte, dass während jedem Schritt die Richtungs-Variable (direction) automatisch in korrekte Richtung eingestellt wird. So kannst du diese Variable benutzten um z.B. das passende Einzelbild zu wählen.

Wenn du Skripte oder pieces of code benutzt hast du mehr Kontrolle über die Möglichkeiten der Ausführung des Pfades. Es gibt eine Funktion um einen Pfad für eine Instanz zu starten. Die Variable path_position bestimmt die derzeitige Position auf dem Pfad (zwischen 0 und 1, wie oben bereits beschrieben). Die Variable path_speed bestimmt die Geschwindigkeit auf dem Pfad. Eine Variable path_scale kann benutzt werden um den Pfad zu skalieren. Ein Wert von 1 ist die normale Größe. Ein größerer Wert macht den Pfad größer; Ein kleinerer Wert macht ihn kleiner. Die Variable path_orientation bestimmt die Ausrichtung in der der Pfad ausgeführt wird (in Grad gegen den Uhrzeigersinn). Dies erlaubt dir den Pfad in einer anderen Ausrichtung (z.B. von oben nach unten statt von links nach rechts). Weiterhin gibt es eine Variable um das Endverhalten (end behavior) zu bestimmen. Schließlich gibt es noch eine Menge Funktionen um die Eigenschaften von Pfaden zu erfragen (z.B. die x- und y-Koordinate an bestimmten Positionen), sowie Funktionen um Pfade zu erstellen. Es gibt sogar Funktionen, die kollisionsfreie Pfade erstellen, um ein bestimmtest Ziel zu erreichen. Schaue in spätere Kapitel über GML für Details.

Du fragst dich vielleicht, was passiert, wenn die Instanz mit einer anderen Instanz kollidiert, während sie einem Pfad folgt. Grob gesagt passiert das gleiche wie wenn die Instanz sich mit einer Geschwindigkeit bewegt. Wenn dort eine feste (solid) Instanz ist, wird die Instanz auf ihre voherige Position zurückgesetzt. Wenn beide Instanzen fest (solid) sind werden sie auf ihre neuen Positionen gesetzt . Als nächstes werden die Kollision(s)-Ereignis(se) durchgeführt und es wird kontrolliert ob die Kollision sich aufgelöst hat. Falls nicht und die andere Instanz ist fest (solid), stoppt die Instanz, sowie sie sollte (angenommen ein Kollisions-Ereignis wurde definiert). Zusätzlich, wird die Variable path_position nicht erhöht. Wenn die blockierende Instanz verschwindet wird die Instanz weiter ihrem Pfad folgen. Um die Kollisionen selbst zu handhaben kann die Variable path_positionprevious nützlich sein. Sie beinhaltet die vorherige Position für den Pfad und du kannst die Pfad-Position gleich dieser Variable setzen, um Vorwärtskommen auf dem Pfad zu vermeiden.

The path event

Wie oben bereits beschrieben, kannst du festlegen was passieren soll wenn die Instanz das Ende des Pfades erreicht. An diesem Punkt tritt das End of path Event ein. Du findest es unter den other. Hier kannst du dann Aktionen plazieren. Vielleicht möchtest du die Instanz dann zerstören, oder sie einem neuen (anderen) Pfad folgen lassen.

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 Französisch

ZIP Download helpfile

Werbung Werbung

GameMaker Handbuch