[Tutorial] "Unendlicher" Weg

  • Moinsen, Quajutsi hier; diesmal mit einem Tutorial im Gepäck :huh:


    Und zwar möchte ich euch (auf Wunsch von Irrendes Licht) zeigen, wie ihr in eurem Spiel einen "unendlichen" Weg umsetzen könnt.

    Ursprünglich wollte ich dazu ein Video aufnehmen, aber da die Videoqualität... nun ja... gelinde gesagt, sehr ruckelig war, das Ganze halt hier in Schrift und Bildern.

    Gebaut und getestet habe ich das Ganze im RPG Maker XP, es sollte sich aber auch in allen anderen Makern umsetzen lassen.


    Zum Start hier eine abstrakte Map, wie die einzelnen Abschnitte grob aufgebaut sind:

    Eventplatzierung_Randabstand_MitWeg.png

    (Blaues Tile = Wasser, nicht begehbar; Grünes/Gelbes Tile = Weg, begehbar)


    Auf diesem Mapabschnitt sieht man einen einfachen Weg. Die Rote Markierung in der Mitte des Abschnitts markiert die Tiles, auf denen später die Teleportevents platziert werden. Wichtig hierbei ist, dass ein jeder solcher Abschnitt links sowie rechts neben diesem 2 Tiles breiten Gebiet jeweils genügend weitere Tiles besitzt, da die Map, wenn ihr euch ihrem Rand nähert, den Spieler nicht mehr zentriert. Beim XP würde ich, so wie hier, 10 Tiles empfehlen. Bei den anderen Makern sollte dies denke ich auch passen, aber da könnt ihr ja auch etwas rumprobieren. ;)

    Das Ganze gilt natürlich auch für oben und unten, falls eure Map höher als die Minimalhöhe ist, wobei es hier auch etwas weniger Tiles - 8 müsste ganz gut passen - sein können.




    Als nächstes geht's ans Kopieren dieser Abschnitte. Später solltet ihr drei identische Abschnitte auf eurer Map haben, ich zeige euch das Teleportieren hier aber am Beispiel von zwei Abschnitten:

    MapAufbau.png


    Wie ihr hier sehen könnt, habe ich den Abschnitt mit etwas Abstand nach rechts kopiert. Zwischen diesen beiden Abschnitten könnt ihr nun den Weg beliebig gestalten, Hauptsache sie sind hinterher durch den mittleren Teil mit einander verbunden. Ich werde es hier so gestalten, dass man unendlich nach rechts läuft, und nur ans Ziel kommt, wenn man stattdessen nach links läuft. In diesem Fall würde ich rechts neben diesem Aufbau - natürlich mit entsprechend Abstand - den Zielort sowie rechts daran anknüpfend den dritten Abschnitt einfügen. Falls ihr es genau andersherum machen wollt (links unendlich, rechts Ziel) müsst ihr den dritten Abschnitt natürlich links an den Zielort anknüpfend platzieren.

    (Weitergehend werde ich den Abschnitt ganz links immer als ersten Abschnitt, den Abschnitt, der mit dem ersten Abschnitt verbunden ist, als zweiten Abschnitt, und den an den Zielort anknüpfenden Abschnitt als dritten Abschnitt oder Zielabschnitt bezeichnen)




    Jetzt kommt der spaßige Teil: unsere Events!

    Event_Zielteleport.png


    Zunächst kümmern wir uns mal um die Teleportevents (Auf dem Bild die Orange markierten Tiles links), die uns zum Zielabschnitt bringen (Auf dem Bild die Rot markierten Tiles rechts). Diese werden nur auf dem ersten Abschnitt platziert.

    Wie man hier vielleicht schon erkennen kann, soll uns ein Teleportevent auf dem einen Abschnitt auf dasselbe Tile des anderen Abschnitts teleportieren. Wenn sich bspw. ein Teleportevent auf den Koordinaten (11,3) unseres ersten Abschnitts befindet, so soll es den Spieler auch auf die Koordinaten (11,3) des Zielabschnitts bringen (Achtung! Nicht mit den Mapkoordinaten verwechseln, ich behandle in diesem Bespiel die Abschnitte hier nur sozusagen als Maps mit eigenen internen Koordinaten.)

    Jedes unserer Events braucht also als einzigen Eventbefehl eine entsprechende Spielerübertragung (Blickrichtung beibehalten, kein Fading); der Auslöser des Events wird auf Spielerberührung eingestellt; und fertig ist unser Teleportevent.

    (Falls ihr unendlich nach links gehen wollt, müssen eure Events natürlich stattdessen auf dem zweiten Abschnitt platziert werden.)

    So in etwa sollte euer Event aussehen:

    Teleportevent.png




    Weiter geht's mit unseren "unendlichen" Teleportern (Auf dem Bild die Orange markierten Tiles diesmal rechts):

    Event_Unendlichteleport.png


    Diese sollen uns vom zweiten Abschnitt bzw. dem Zielabschnitt zurück in den ersten Abschnitt bringen. Ich greife hier die Beispielkoordinaten aus dem vorigen Absatz nochmal auf: Dort hatten wir ein Event auf den Beispielkoordinaten (11,3) platziert. Hier würde das Event nun auf den Beispielkoordinaten (12,3) des zweiten Abschnitts sowie des Zielabschnitts platziert werden - also genau ein Tile weiter rechts als unser Zielteleporter bzw. sein Zieltile für den Teleport.

    Auch diese Events bekommen als einzigen Eventbefehl wieder die entsprechende Spielerübertragung (Blickrichtung beibehalten, kein Fading); der Auslöser wird wieder auf Spielerberührung eingestellt; und tadaa - unser unendlicher Weg ist fertig.

    (Im Fall von links unendlich platziert ihr eure Events natürlich auf dem ersten Abschnitt und dem Zielabschnitt statt auf dem zweiten Abschnitt und dem Zielabschnitt; und die Spielerübertragung sollte den Spieler zurück auf den zweiten Abschnitt bringen. Außerdem sollten sich die "unendlichen" Teleportevents nun ein Tile weiter links als die Zielteleporter bzw. ihre Zieltiles für den Teleport befinden, anstatt ein Tile weiter rechts.)



    Das Ganze lässt sich natürlich auch um 90° drehen, sodass ihr unendlich nach unten (oder oben) lauft - vergesst nur nicht, dass ihr den Tileabstand zum Rand (10 nach rechts/links bzw. 8 nach oben/unten) nicht mitdrehen müsst, da das Spielefenster ja nicht mitgedreht wird.




    Alternative: X Durchläufe

    Hier noch eine Alternative, falls ihr den Weg nur X mal durchlaufen wollt:


    Als Beispiel sagen wir mal, der Spieler solle 6 mal nach Rechts laufen müssen, bevor er zum Zielort kommt.

    Folgende Änderungen müsst ihr dann vornehmen:


    -Ihr braucht den Zielabschnitt nicht mehr - euer Zielort kann nun einfach rechts an den zweiten Abschnitt anknüpfen.

    -Die Events auf dem ersten Abschnitt müssen den Spieler dementsprechend natürlich nun auf den zweiten Abschnitt statt den Zielabschnitt übertragen

    -Bei den Events auf dem ersten Abschnitt packt ihr den Teleportbefehl in eine Bedingte Verzweigung, die Überprüft, ob eine Variable größer als 0 ist. Wenn ja, soll zunächst die Variable um 1 verringert und danach der Spieler teleportiert werden

    Event_ErsterAbschnitt.png

    -Bei den Events auf dem zweiten Abschnitt macht ihr genau das Gleiche - nur prüft ihr jetzt, ob die Variable kleiner als 6 ist, und erhöht sie in diesem Fall dann um 1

    Event_ZweiterAbschnitt.png


    Dies macht nun folgendes: Solange ihr nach rechts geht und die Variable kleiner als 6 ist, werden ihr zurück zum ersten Abschnitt transportiert und die Variable erhöht sich um 1. Ist sie 6 oder größer, passiert nichts und ihr lauft einfach durch das Event durch zum Zielort.

    Geht ihr zurück nach links und ist die Variable größer als 0, werdet ihr zurück zum zweiten Abschnitt transportiert und die Variable verringert sich um 1. Ist sie 0 oder kleiner, passiert nichts und ihr lauft einfach durch das Event zum Mapanfang zurück.

    Ihr könnt natürlich auch fies sein und sagen, sobald der Spieler auch nur einmal zurückläuft, kommt er an den Anfang der Map zurück :evil:

    Dazu entfernt ihr einfach alle Befehle aus den Events des ersten Abschnitts und ersetzt sie durch eine Variablensteuerung, die eure Variable auf 0 setzt - Der Spieler läuft nun über das Event, ohne zum zweiten Abschnitt teleportiert zu werden, und sein Fortschritt geht verloren.




    Ich hoffe, ich konnte euch das Ganze verständlich erklären. Wenn ihr Fragen oder Anmerkungen habt, stellt sie gerne, dann werde ich sehen, ob ich noch was übersehen habe oder verbessern muss. ^^


    ~ Euer Quajutsi

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!