# Wie entstehen Partikeleffekte?



## Titanpharao (1. Jul 2008)

Hi alle,

also ich bin gerade an einer Neuauflage eines alten Pascal Spiels von mir. Dabei ist mir gerade in gedanken gekommen, ich könnte die Magiesprüche ja zeichnen lassen nicht überer eine Gif animation steuern, wie ich es sonst mache.

Viele kennen doch zum Beispiel Starcraft. Dort gibt es verschiedene Fähigkeiten, welche bei jeder Figur anders aussehen. Zum beispiel eine Matrix um ein Objekt ist immer unterschiedlich groß.
Oder Feuerbälle bei Diablo2 gehen auch nur bis zum gegner. 
Wird das über Algos gelöst? Also werden diese Animationen je nach lage bestimmt gezeichnet? So jedes Pixel einzeln, alle farben etc... brauch doch sicher viel Leistung denke ich mir.

Hat einer eine Idee, wie die das bewerkstelligen?
Mfg Oli


----------



## m@nu (2. Jul 2008)

google mal nach partikelsystemen:
http://www.google.ch/search?hl=de&q=partikelsysteme+java&btnG=Google-Suche&meta=

habe sowas selber noch nie implementiert. partiklsysteme sind heute in der grafik-engine entwicklung gang und gäbe.


----------



## Titanpharao (2. Jul 2008)

Ok habe das Thema wohl etwas falsch formuliert. Ich meine nicht diese effekte. Schaut eucht doch mal ältere 2D Iso Spiele an. Da fliegt der Feuerball von oben unten links, kurz etc.... überwas wird der Feuerball realisiert. Also diese ganzen Effekte in 2D spielen. Oder Explosionen, doch nicht über vorgefertigte Bilder.


----------



## Evil-Devil (2. Jul 2008)

Titanpharao hat gesagt.:
			
		

> Also diese ganzen Effekte in 2D spielen. Oder Explosionen, doch nicht über vorgefertigte Bilder.


Bei all den alten Spielen, ja, über vorgefertigte Bilder. Ist bei Diablo 2 auch so. Da gibt es für jeden Rotz eine Grafik.


----------



## m@nu (2. Jul 2008)

achsooo, sorry 
doch, mit vorgefertigten bildern, auch sprites genannt.

meistens hast du in einer grafikdatei in einem bestimmten pixelabstand die einzelnen animationsphasen.
(beispiele: http://images.google.ch/images?um=1&hl=de&q=sprite+animation&btnG=Bilder-Suche)

die engine des spiels nimmt anschliessen die einzelnen bilder und spielt sie hintereinander ab. somit entsteht die animation.

steht nicht besonders viel prozessorleistung zur verfügung, konnte man so relativ einfach aufwändige objekte animieren, da die einzelnen frames z.b. in einer 3d rendering software vorgerendert wurden.

<edit>
hier noch ein beispiel für deine explosion: http://andersondevs.com/Pictures/animations/spritesheet.jpg
das schwarz im hintergrund kann z.b. so umgerechnet werden, dass ein alphachannel entsteht. somit kann eine animation auch auf mehreren hintergründen verwendet werden.
alternativ kann auch direkt ein bildformat mit alphachannel-unterstützung gewählt werden (beispielsweise png)
</edit>


----------



## Titanpharao (2. Jul 2008)

Also bei meinem alten Spiel,

LINK: http://tkb.dieters-web.com/?site=programme

Habe ich die Animation immer auf einem 448x448 großen Label ablaufen lassen. Da ging der Feuerball auch mal durch einen Gegner, wenn dieser nur 1Feld vor einem gestanden hat. 

Aber ich habe dort auch die Fähigkeit "Phönix". Dabei entsteht ein großer Vogel, wäre doch cool, wenn der gleiche Vogel bei einer kürzeren Reichweite anders aussieht.
Dafür immer ein extra Bild anfertigen? Müsten die Spiele damals nicht riesig groß sein? Also das bei den Figuren es so funktioniert weis ich. Aber auch bei "Skills".
Ich muss nochmal parr alte Spiele rauskramen und genau ansehen.
Oder ein Raketenflug, große Strecke sieht anders aus, als wenn sehr nah, allein die Flugbahn.


----------



## AlArenal (2. Jul 2008)

Man kann Bilder auch runterskalieren und die skalierten Versionen notfalls cachen... oder gleich vektorisiert arbeiten...


----------



## Evil-Devil (3. Jul 2008)

Und für Pixelbilder gibt es einige Algos zum sklarieren mit denen das Bild auch in größerer Version ganz gut ausschaut.


----------

