Ich muss meinem Spiel einen scrollenden Hintergrund hinzufügen, das Bild ist 512x512px. Es ist für ein Autospiel mit Gegenverkehr und ich möchte in der Lage sein, auf die gegenüberliegende Seite zu wechseln und auch gegen den Verkehr zu fahren. Das Spiel ist im Hochformat und ich benutze cocos2d.
Wie kann ich das bestmöglich machen?
assets
art
cocos2d-iphone
level-design
David Holmes
quelle
quelle
Antworten:
Ich würde im Grunde eine 2x2-Kachelkarte erstellen, in der die Kacheln zufällig 512x512 sind. Scrollen Sie wie gewohnt durch, aber sobald X über 512 hinausgeht, subtrahieren Sie 512 (oder machen Sie ein Modulo 512 - aber achten Sie auf negative Zahlen), dasselbe gilt für Y. Anstelle einer Poly zeichnen Sie also 4, obwohl nur 1 sichtbar ist Die meiste Zeit, aber in Grenzfällen sind alle 4 sichtbar (wenn Sie zum Beispiel 400 nach unten und 400 nach rechts gehen). Auf diese Weise sollte es für immer weiter scrollen.
Natürlich können Sie auch 4 Sprites anstelle einer Tilemap verwenden. Eine bei worldPos, eine bei worldPos + (512,0), eine bei worldPos + (0,512) und eine bei worldPos + (512.512).
Stellen Sie sicher, dass worldPos immer modulo 512 ist und dass es für immer scrollen sollte.
Bearbeitet, um Code hinzuzufügen:
Nicht getestet, Syntax nicht überprüft.
Sehr hartcodiert, um dieses Problem zu lösen. Es wäre besser mit einem tatsächlichen Array für eine Karte, aber für dieses spezielle Problem sollte dies funktionieren.
Nimmt an, dass 0,0 oben links auf dem Bildschirm angezeigt wird.
quelle
Wenn ich Sie richtig verstehe, können Sie eine Reihe von Bildern erstellen. Jedes Bild hat einen Eintrittspunkt und einen Austrittspunkt. Zur Vereinfachung können Sie alle Ein- und Ausstiegspunkte an derselben Stelle festlegen. Dann können Sie zufällig zwischen verschiedenen Bildern wechseln, damit der Player nicht auf ein vollständig redundantes Level stößt. Wenn Sie die Dinge ein wenig durcheinander bringen möchten, können Sie Bilder mit unterschiedlichen Ein- und Ausgängen erstellen. Sie müssen nur ein wenig mehr arbeiten, um sicherzustellen, dass der Ausgang eines Bildes mit dem Eingang des nächsten Bildes übereinstimmt.
quelle