Effekte von Start bis Ende

  • GM 8
  • Effekte von Start bis Ende

    Ich habe da mal eine, vielleicht weniger gut beschriebene Frage. Vor allem in AAA-Titeln sieht man oft Effekte, die von einem Startpunkt aus bis zu einem variablen Abstand (Ziel) gehen. Zum Beispiel in Starcraft oder Diablo 3. Da geht ein Blitz / eine Waffe vom Auslöser bis zum Ziel und der Effekt ist immer genau so lang, also der Raum dazwischen mit dem Effekt gefüllt. Mit Blitz und Laser lässt sich das ganz gut erklären, da sieht man nämlich die Verbindung zwischen Start und Ziel ganz gut.

    Meine Frage ist, wie macht man das? Man hat ja nicht nur ein Sprite, welches man skalieren muss, sondern Partikeleffekte, ggf. ein Licht etc. was sich innerhalb des Weges so aufhalten muss, dass es mit allen Abständen gut aussieht. Kennt dazu jemand ein gutes Tutorial?
  • Das ist witzig, ich hab mal vor einiger Zeit an einem Spiel gewerkelt, wo man einen Laser und eine Blitz als Waffe hatte, der genau so einen Effekt hatte. Nur das wir auch über das selbe Reden, der Effekt soll reichweitenrechnisch immer gleich gut aussehen, so wie in der Beispielgraphik:




    Die Version ist relativ simpel gehalten. Der Blitz ist in dem Fall genau so lange wie ein Spielbildschirm. Als erstes (das mußt du jeden step machen), rechne ich aus, wieviel platz nach vorne frei ist. Dann zeichne ich den Blitz mit der draw_sprite_part funktion bis zu dem vorher errechneten Punkt. Danach legen ich an dieses Position den Treffer Effekt. Auf den Bildern nicht zu sehen: wenn der Blitz verschwindet, werden auf der ganzen Fläche, die er am Ende belegt hat, noch blaue Partikel verteilt, eine art "Reststrahlung" wenn man so will.

    Wenn ich heute oder Morgen Abend Zeit habe, schreib ich dir ein Tutorial, wie man das von beliebigen Punkten aus machen kann (also von xy auf anderes xy, nicht nur gerade aus), aber ich hoffe, das die das hier schon ein paar Denkanstöße gibt.
    ...
  • Genau das meine ich.

    Versuche es mit eigenen Worten noch einmal zu erklären, Mal sehen ob ich es verstanden habe. Der Effekt besteht aus drei Teilen. Der Anfang und das Ende sind immer gleich. Die mittlere Grafik (Animation) ist variabel. Die Grafik (Animation) für die Mitte muss so lang sein wie die längste Bildschirmkoordinate. Bei einer Auflösung von 1024*768 muss der Blitz also 1024 Pixel lang sein.

    Sobald der Effekt ausgelöst wird, wird der Abstand von Start und Ziel berechnet und vom langen Blitz diese Länge "heraus geschnitten" bzw. so viel verwendet und der Rest nicht. Anschließend werden Anfang und Ende des Effektes dazu getan.

    Richtig?

    Wenn ja, wäre ein Beispiel dennoch super. Vielleicht eines mit statischen und eines mit sich dabei bewegenden Objekten. (Abstand wird angepasst)
  • Shoba's Variante hast dus chon richtig verstanden :)
    Es gibt aber auch die Möglichkeit selber Efekte zu zeichnen und zwar per code. Damit erspart man sich das Zeichnen als Sprite (sowohl die Mühe als auch später Speicher im Spiel) und man ist definitiv mehr flexibel so dass man den Effekt leicht durch Zufall varierieren kann. Einziger Nachteil ist allerdings dass der Code meist einiges an Performance schluckt aber wenns nur einmal im Bildschirm erscheinen soll dann geht das definitiv.

    Hier ein Beispiel von mir das ein klein wenig mit Shoba's Bildern vergleichbar ist.
    Es enthält allerdings nur den Spark selbst. Den Anfang und Ende müsstest du auch hier als Sprite zeichnen.
    Dateien
    • spark2.zip

      (9,95 kB, 184 mal heruntergeladen, zuletzt: )

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)