Frage zum Scrollen von oben nach unten / von der Seite!

7

Ich weiß, dass es nur der Hintergrund ist, der rollt, und der Spieler bleibt so ziemlich zentriert. Was ich mich frage, welche Technik korrekter ist, wenn ich eine große Side-Scrolling-Karte implementiere (ich verwende keine Kacheln wie einige andere Fragen, die ich gefunden habe).

Verwenden einer sehr großen Karte mit 16000 Pixeln und Scrollen. und eine Bilderliste mit vielleicht 4 4000-Pixel-Karten erstellen?

Angenommen, ich möchte eine Box an einem bestimmten Punkt in meiner Karte. Im Moment zähle ich nur die Pixel, die ich scrolle, und sobald ich Pixel 2000 erreicht habe, füge ich das Feld ein und scrolle es mit dem Hintergrund. Scheint das richtig? oder gibt es einen besseren weg, um all dies zu tun?

Bitbitbot
quelle

Antworten:

4

Wenn Sie SpriteBatch verwenden:

  • Zeichne alles ( SpriteBatch.Draw) in seinen "Weltraum"
  • Übergeben Sie eine Übersetzungsmatrix, SpriteBatch.Beginum Ihren Weltraum in die richtige Position zu übersetzen (stellen Sie sich dies wie eine Kamera vor).
  • Die maximale Texturgröße in XNA beträgt 2048 x 2048 im Reach-Profil, 4096 x 4096 für HiDef ( Details ). Wenn Ihre Hintergrundtextur größer ist, müssen Sie sie aufteilen und in Teile zeichnen.
  • Wenn Sie auf Leistungsprobleme stoßen, sollten Sie in Betracht ziehen, etwas Culling hinzuzufügen .

Sie sollten alle Ihre Bewegungsberechnungen usw. in diesem "Weltraum" durchführen. Diese Box hätte also eine Position von so etwas wie new Vector2(2000, 0).

Ihr Spieler hätte auch eine Vector2 position;und wahrscheinlich auch so etwas wie eine Vector2 velocity. Sie würden dann Drawden Spieler an dieser Position sprite. Verwenden Sie diese Position auch, um Ihre Kameramatrix zu erstellen.

Für wirklich große Welten oder für Physik-Engines, die Präzision erfordern, müssen Sie möglicherweise die Umbasierung Ihres Weltraums durcheinander bringen, um Präzision ( Details ) aufrechtzuerhalten . Ich stelle mir vor, dass dies wahrscheinlich nicht auf Ihre Situation zutrifft.

Andrew Russell
quelle
0

Verwenden Sie eine Bilderliste. (Ist speicherfreundlicher - achten Sie jedoch auf den Garbage Collector)

Das Zählen von Pixeln kann gut oder schlecht sein. Kommt auf die Komplexität deines Spiels an. Pro: - Es ist ziemlich WYSIWYG. - Es ist einfach zu verstehen, was passiert

Con: - Ihre kleinste Schrittweite beträgt ein Pixel - vielleicht möchten Sie mit Ihren Steuerelementen präziser arbeiten können

Mein Vorschlag: Wenn Ihr Spiel einigermaßen einfach ist, verwenden Sie Pixel. Ansonsten berechnen Sie alles in einem durchgehenden Raum.

Fabian
quelle
Alles in einem kontinuierlichen Raum zu berechnen scheint eine gute Idee zu sein ... wenn ich nur wüsste, was das ist.
Bitbitbot
1
Im kontinuierlichen Raum machen Sie Vektorgeometrie ;-) Wenn Sie mit linearer Algebra nicht sehr vertraut sind , bleiben Sie bei den Pixeln (oder gehen Sie zu khanacademy.org und lernen Sie es)
Fabian