Seite 1 von 1

Sidescroller

Verfasst: 27.07.2023 22:09
von MB1973
Hallo auch,

ich bin neu hier und komme nicht ganz weiter. Eigentlich möchte ich etwas ganz einfaches. Komme aber nicht zurecht.
Ich möchte mir eine SideScroller programmieren. Dazu habe ich mir drei schwarze PNG's mit vielen unterschiedlichen bunten Pixel erstellt.
Diese sollen nun endlos durch den Bildschirm scrollen. Gedacht habe ich mir das in etwa So:

Bild 1 soll die erste Ebene darstellen und langsam scrollen
Bild2 die mittlere Ebene die etwas schneller scrollt
und Bild 3, die vordere Ebene die am schnellsten scrollt.

So möchte ich einen Pseudo-3d-Effekt erzeugen. Die Bilder müssen natürlich im Transparent-Modus sein. sonst scheinen die Pixel/Sterne ja nicht durch.

Vor diesem Hintergrund sollen dann mit CreateSphere und CreateCube erzeugte Objekte tanzen. Das bekomme ich soweit auch hin. Aber der beschriebene Hintergrund lässt mich verzweifeln.

In xProfan war das ganz einfach doch in PureBASIC habe ich keine Ahnung.

Wäre schön wenn ihr mir ein Beispielcode zeigen könntet.

Gruß aus Castrop,
MB1973

Re: Sidescroller

Verfasst: 02.08.2023 08:40
von tft
Hallo ....... erinnert an alte Zeiten.

Also einen Beispiel-Code kann ich nicht bieten. Denn 2D und 3D in dieser Form zu vereinen, ist nicht ganz trivial.

Als Erstes, solltest du dir Gedanken machen, wie sich das technisch mit der 3d Engine von Purebasic realisieren lassen könnte.

Soweit ich weiss, lässt sich der Hintergrund nur mit einer SkyBox setzen. Multilayer gibt es da nicht wirklich. Du müsstest also über die Material
Eigenschaften, die Offsets mehrere Layer steuern.
Es wäre auch denkbar. Mehrere Planes transparent hintereinander zu legen. Und diese direkt im 3D Raum zu verschieben. Die 3D-Objekte
müssten dann immer vor diese Planes gezeichnet werden.

Das sind zumindest meine ersten Gedanken dazu. Da mich die Aufgabe interessiert. Würde ich dir gerne dabei helfen. Wenn du magst,
können wir gerne einen ZOOM Call machen. Denn solche Sachen über geschriebene Nachrichten zu erarbeiten, ist sehr mühsam.

Gruss TFT

Re: Sidescroller

Verfasst: 02.08.2023 10:45
von SMaag
Funktonsansatz! Scroll im Eigenbau!

Dass das direkt mit PNG geht glaub eher ich. Bitmap wird wohl besser sein, da du das Bild zeilenweise benötigst.

Buffer erstellen, in den das Bild 2x hintereinander passt. Das Bild 2x hintereinander kopieren.
Evtl. einfach das Bild 2x so hoch machen wie benötigt, da beim hintereinander kopieren auch der Bitmap Header mit kopiert wird
Jetzt bauchst du noch die Zeilenlänge in Bytes. Bei BMP bekommt man das raus! Wie weis ich aber gerade nicht!

Dann Scrollen über Pointer.
Pointer praktisch n Zeilen weiterschalten.

Dann Bild ab Pointer mit Drawbefehl in den Hintergrund zeichen.
Evtl. muss man zuerst CreateImage() bemühen, um ein verarbeitbares Bild zu bekommen.

so nach der Reihe mit allen 3 Bildern verfahren!

Re: Sidescroller

Verfasst: 03.08.2023 11:57
von bobobo
mach das mal komplett im 3d
in etwas so: eine fixe kameraposition gerichtet auf drei hintereinanderlegende planes
die planes selber werden mit einer scrollenden Texture bepflastert. eventuell auch tramsparent

Re: Sidescroller

Verfasst: 03.08.2023 14:52
von tft
ja .... das ist sogar noch besser. Die Textur musst du nicht-mal Scollen. Die Plane entsprechend breit machen. Und dann nur die y Position verschieben. Du kannst das auch mit der Camrea mittels Nodes verknüpfen. Da setze ich mich doch gleich mal rann, und probiere es mal.

Gruss TFT

Re: Sidescroller

Verfasst: 04.08.2023 19:01
von darius676
Sollte einfach sein:
Für jede Ebene die Grafik 2x ablegen
Beide Grafiken bewegen sich mit Geschwindigkeit X horizontal.
Sobald Grafik 1 nach links verschwindet, diese an den Rechten Rand setzen. Dies mit jeweils angepasster Geschwindigkeit für jede Ebene realisieren. Dies funktioniert wunderbar mit PNG.
Ich verwende dies (eine Ebene) bei meinem aktuellen Spiel (AWAKENING) für den Hintergrund.