Sternenscroller fast auf Warp

  • 3Minuten

In den letzten Wochen habe ich mal wieder die erste Star Trek Serie angeschaut (TOS). Und da kam der Wunsch in mir auf, einen Sternenscroller zu programmieren, der aussieht, als würde man ganz schnell durch das Weltall düsen.

Dass es verschiedene Möglichkeiten gibt, einen solchen Effekt zu programmieren, wurde bereits in anderen Tutorials gezeigt (siehe Links ganz unten). Heute verwenden wir einen anderen Ansatz.

Die Theorie

Der Effekt ist relativ simpel und lässt sich gut anpassen. Um ihn zu realisieren, brauchen wir zwei Objekte. Das eine Objekt ist ein einzelner “Stern”, welcher hier als Linie dargestellt wird. Dieser Stern fliegt, beginnend bei einer beliebigen Ausgangsposition, an den Bildschirmrand. Jeder Stern sieht so aus, als hätte er seinen Ursprung in der Bildschirmmitte. Wir haben verschiedene Parameter wie Winkel, Distanz zur Mitte, Geschwindigkeit und Alpha. Das heißt: Wem das Video oben zu dunkel ist, der kann es u. a. über den Alphawert verändern. Wenn der Stern den Bildschirm verlässt, wird er automatisch wieder in die Mitte gesetzt um neu zu starten.

Jetzt wäre ein einzelner Stern sehr öde. Je nach Auflösung des Spiels bzw. des Raums brauchen wir schon etwas mehr. Ich habe es auf 1920×1080 angepasst und fand, dass 600 ein recht guter Wert ist. Und das machen wir in einem zentralen Objekt: Wir verteilen die Objekte, in diesem Fall 600 an der Zahl, auf dem Bildschirm.

obj_star_lines

Legen wir gleich los. Im Stern brauchen wir drei Events.

Create-Event

Hier legen wir unsere Variablen fest. x_start und y_start sind die Bildschirmmitte. Es kann sehr interessant sein, wenn man den Start verschiebt, etwa auf 0, 0.

Mit x und y legen wir die tatsächliche Ausgangsposition fest, damit nicht alle Sterne in der Mitte beginnen. distance und alpha setzen wir zunächst auf 0 und berechnen sie später.

Step-Event

Der Code ist ziemlich selbsterklärend. Man kann die Sterne heller machen, indem man bspw. das * 1.2 entfernt.

Nun müssen wir den Stern noch zeichnen.

Draw-Event

Im Prinzip zeichnen wir hier nur eine Linie, die vom Winkel her von der Mitte nach Außen, bezogen auf direction, ausgerichtet ist. Der Farbverlauf geht bei mir von Schwarz zu einem sehr hellen Rosa. Auch das könnt ihr nach Belieben anpassen.

Hauptobjekt

Das Hauptobjekt, in dem wir alle Sterne generieren, besteht dann nur noch aus einem Event.

Create-Event

Wir initialisieren den Zufallsgenerator. Dann starten wir eine for-Schleife, welche wir sechshundert Mal durchlaufen. Dabei platzieren wir jeden Stern zufällig im Raum. Am Ende geben wir jedem Stern noch eine Geschwindigkeit mit, die im Beispiel zwischen 2 und 6 liegt. Wer einen witzigen Effekt sehen will, kann die 6 in 60 ändern.

Das war es auch schon wieder. Viel Spaß dabei, per Warpgeschwindigkeit zu fliegen.

Weiterführende Links

Sterne aus der Tiefe
Horizontaler Sternenscroller und Parallax scrolling
Shader-Programmierung 1: Grundlagen und Sprites

Autor

Abonnieren
Benachrichtige mich bei
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x