Original: Moving Platforms Tutorial
Autor: Simon Donkers
Homepage: gamemaker.simondonkers.com/
übersetzt von Windapple mit Genehmigung von Simon Donkers
Dieses Tutorial beschreibt das erstellen beweglicher Plattformen, wie z.B. Aufzüge. Zuerst werden horizontale Bewegungen besprochen, danach vertikale. Dieses Tutorial setzt vorraus, das du schon ein Plattformspiel machen kannst. Ein Tutorial darüber befindet sich auf der Game Maker Website.
Horizontale Plattformen
Der Trick bei horizontal bewegten Plattformen liegt darin, die Geschwindigkeit der Plattform zu prüfen und die Spielergeschwindigkeit daran anzupassen. Erst musst du prüfen, ob du auf dem Boden stehst:
Dann musst du überprüfen, ob du auf einer beweglichen Plattform stehst:
Wie du siehst benutze ich für die X Koordinate: x-sprite_xoffset+sprite_width/2. x-sprite_xoffset bedeutet, das von der linken Seite berechnet wird, auch wenn der Ursprung an eine andere Stelle gesetzt wird. Das sprite_width/2 führt dazu, dass die Position auf die halbe Breite des Sprites gelegt wird. Die X Koordinate ist also mitten im Sprite. Als Y Koordinate siehst du y-sprite_yoffset welche die Oberkannte des Sprites angibt. Wenn wir sprite_height hinzuaddieren sind wir an der Unterkannte. Der Code prüft also letztendlich, ob mittig unter dem Spieler eine Plattform ist.
Nun muss noch die Bewegunge kommen. Dazu kannst du den hspeed des Spielers auf den des Blockes stellen:
Alles anzeigen
Dies prüft auf eine bewegliche Plattform, nimmt ihre ID und setzt hspeed des Spielers auf den hspeed der Plattform.
Dies erzeugt eine sich horizontal bewegende Plattform.
Einige Hinweise:
* Oben muss du object_moving_platform ausfüllen, das muss mit dem Namen der beweglichen Plattform ersetzt werden. Solltest du mehrere mit unterschiedlichen Eigenschaften haben, arbeite mit Parents. Damit kann man das auf alle Plattformen ausweiten.
* Denke daran die Plattformen solid zu machen!!!
* Ein wichtiges Details ist es, es unmöglich zu machen zwischen Plattform und Boden zu stecken. Also lass die Plattform bei einer Kollision mit dem Spieler und bei höherer Höhe als dieser sich umkehren:
Dieser Code muss in den Kollisionsevent des Spielers mit der Plattform.
* Es gibt ein Beispiel mit horizontal und vertikal beweglichen Plattformen, hols dir hier.
Vertikale Plattformen
Vertikale Plattformen sind viel schwieriger als horizontale weil es immer das Risiko gibt, in ihnen stecken zu bleiben. Das positive ist, das du dich immer herunterbewegst, das liegt an der Gravitation.
Für vertikale Plattformen kann man den Code mit einigen Anpassungen verwenden
Wenn du aber nicht genau über der Plattform stehst wirst du drin stecken bleiben. Wir modifizieren den Code also:
Einige Hinweise:
* Stelle sicher, das die Plattform nie so nahe an die Decke oder an den Boden kommt, um deine Figur festzufahren.
* Du musst hier keine genauen Kollisionsprüfungen machen, da der Spieler immer auf dem Plattform stehen bleibt, da die Plattform sich nach unten bewegt und der Spieler sich nach oben.
* Denke daran die Plattformen solid zu machen!!!
* Beachte, das der Spieler von der Plattform nicht nach oben springen kann. Um das zu erreichen, muss noch ein bisschen modifiziert werden:
Alles anzeigen
* Es gibt ein Beispiel mit horizontal und vertikal beweglichen Plattformen, hols dir hier.
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.
Autor: Simon Donkers
Homepage: gamemaker.simondonkers.com/
übersetzt von Windapple mit Genehmigung von Simon Donkers
Dieses Tutorial beschreibt das erstellen beweglicher Plattformen, wie z.B. Aufzüge. Zuerst werden horizontale Bewegungen besprochen, danach vertikale. Dieses Tutorial setzt vorraus, das du schon ein Plattformspiel machen kannst. Ein Tutorial darüber befindet sich auf der Game Maker Website.
Horizontale Plattformen
Der Trick bei horizontal bewegten Plattformen liegt darin, die Geschwindigkeit der Plattform zu prüfen und die Spielergeschwindigkeit daran anzupassen. Erst musst du prüfen, ob du auf dem Boden stehst:
Dann musst du überprüfen, ob du auf einer beweglichen Plattform stehst:
Wie du siehst benutze ich für die X Koordinate: x-sprite_xoffset+sprite_width/2. x-sprite_xoffset bedeutet, das von der linken Seite berechnet wird, auch wenn der Ursprung an eine andere Stelle gesetzt wird. Das sprite_width/2 führt dazu, dass die Position auf die halbe Breite des Sprites gelegt wird. Die X Koordinate ist also mitten im Sprite. Als Y Koordinate siehst du y-sprite_yoffset welche die Oberkannte des Sprites angibt. Wenn wir sprite_height hinzuaddieren sind wir an der Unterkannte. Der Code prüft also letztendlich, ob mittig unter dem Spieler eine Plattform ist.
Nun muss noch die Bewegunge kommen. Dazu kannst du den hspeed des Spielers auf den des Blockes stellen:
GML-Quellcode
Dies prüft auf eine bewegliche Plattform, nimmt ihre ID und setzt hspeed des Spielers auf den hspeed der Plattform.
Dies erzeugt eine sich horizontal bewegende Plattform.
Einige Hinweise:
* Oben muss du object_moving_platform ausfüllen, das muss mit dem Namen der beweglichen Plattform ersetzt werden. Solltest du mehrere mit unterschiedlichen Eigenschaften haben, arbeite mit Parents. Damit kann man das auf alle Plattformen ausweiten.
* Denke daran die Plattformen solid zu machen!!!
* Ein wichtiges Details ist es, es unmöglich zu machen zwischen Plattform und Boden zu stecken. Also lass die Plattform bei einer Kollision mit dem Spieler und bei höherer Höhe als dieser sich umkehren:
Dieser Code muss in den Kollisionsevent des Spielers mit der Plattform.
* Es gibt ein Beispiel mit horizontal und vertikal beweglichen Plattformen, hols dir hier.
Vertikale Plattformen
Vertikale Plattformen sind viel schwieriger als horizontale weil es immer das Risiko gibt, in ihnen stecken zu bleiben. Das positive ist, das du dich immer herunterbewegst, das liegt an der Gravitation.
Für vertikale Plattformen kann man den Code mit einigen Anpassungen verwenden
Wenn du aber nicht genau über der Plattform stehst wirst du drin stecken bleiben. Wir modifizieren den Code also:
GML-Quellcode
Einige Hinweise:
* Stelle sicher, das die Plattform nie so nahe an die Decke oder an den Boden kommt, um deine Figur festzufahren.
* Du musst hier keine genauen Kollisionsprüfungen machen, da der Spieler immer auf dem Plattform stehen bleibt, da die Plattform sich nach unten bewegt und der Spieler sich nach oben.
* Denke daran die Plattformen solid zu machen!!!
* Beachte, das der Spieler von der Plattform nicht nach oben springen kann. Um das zu erreichen, muss noch ein bisschen modifiziert werden:
GML-Quellcode
- if position_meeting(x-sprite_xoffset+sprite_width/2,y-sprite_yoffset+
- sprite_height,object_moving_platform)
- {
- objID = instance_position(x-sprite_xoffset+sprite_width/2,y-sprite_yoffset+
- sprite_height,object_moving_platform)
- vspeed = objID.vspeed;
- move_outside_solid(90,sprite_height);
- if keyboard_check(vk_up) then
- {
- vspeed:=-10; //change 10 to the jump speed
- }
- }
* Es gibt ein Beispiel mit horizontal und vertikal beweglichen Plattformen, hols dir hier.
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