Nach ein paar Stunden Suche im Internet habe ich noch keine erfreuliche Antwort auf den Umgang mit sich bewegenden Plattformen in einem 2D-Plattformspiel gefunden. Deshalb habe ich mich für einen einfachen Prototyp entschieden, bei dem Sie mit zwei verschiedenen Plattformen interagieren, von denen sich eine vertikal und eine horizontal bewegt. Ich würde gerne Hilfe bekommen, um zu sezieren und zu sehen, was nicht funktioniert und wie man sie repariert. Ich habe die .fla-Datei + .as-Datei unten eingereicht, zusammen mit einem Link zur abspielbaren .swf.
Das Ziel ist es, den Helden dazu zu bringen, mit den Plattformen zu interagieren, als wären sie feste Objekte, auf denen er stehen, neben die er geschoben, auf / unter usw. springen kann.
Die Probleme mit meinem Prototyp sind folgende:
Wenn Sie auf der sich horizontal bewegenden Plattform stehen, ohne sich zu bewegen (ohne Tasten zu berühren), bewegt sich der Held mit der Plattform mit, jedoch mit einer leichten Verzögerung, wodurch der Held ein wenig zurückgleitet.
Wenn Sie auf der sich horizontal bewegenden Plattform stehen und springen, bewegen Sie sich mit der Plattform in der Luft (einige Spiele bevorzugen dies, aber es fühlt sich nicht natürlich an und wird hier nicht gewünscht). Dies könnte dadurch verursacht werden, dass der Held die Geschwindigkeit auf der X-Achse von der Plattform beibehält.
Wenn Sie auf der sich vertikal bewegenden Plattform nach unten springen, während sich die Plattform nach unten bewegt, sinken Sie für eine kurze Sekunde darin ein. Der Held dringt durch, als ob die Kollision für einen Moment nicht existierte.
Wenn Sie auf eine sich vertikal bewegende Plattform springen, bleibt die Geschwindigkeit auf der Y-Achse erhalten. Wenn Sie also von der Plattform gehen, fallen Sie mit einer höheren Geschwindigkeit herunter. Mit der Geschwindigkeit der beibehaltenen Geschwindigkeit + der hinzugefügten Schwerkraft (dies liegt hauptsächlich daran, dass ich keine Möglichkeit finden kann, die Geschwindigkeit auf der Y-Achse auf 0 zurückzusetzen, wenn Sie auf der Plattform landen, ohne dass der Spieler in der Luft friert).
Ich bin ein unerfahrener Programmierer, daher bin ich mir sicher, dass es BESSERE Möglichkeiten gibt, dies zu tun, und ich würde sie gerne alle hören. Alle Ideen zur Verbesserung des Codes oder anderer Methoden, mit denen Sie bewegliche Plattformen in ein Tile-basiertes Spiel implementieren können, sind willkommen. Am Ende versuche ich, einen soliden Weg zu finden, um mit sich bewegenden Plattformen in 2D-Plattformern umzugehen.
Spielbares SWF: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.html (Mit Pfeiltasten bewegen, Mit X-Taste springen, Mit Z-Taste ausführen)
Quellcode AS-Datei: http://dl.dropbox.com/u/28271061/Platformerhowto.as
SourcefileFLA: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.fla
Wenn Sie den Code lieber online über Pastie lesen möchten: http://pastie.org/2266764