Den Game Maker benutzen
Partikeltypen
Ein Partikeltyp beschreibt die Form, Farbe und Bewegung einer bestimmten Art eines Partikels. Du musst einen Partikeltyp nur zu Beginn des Spieles erstellen. Danach kann er in jedem Partikelsystem des Spieles verwandt werden. Partikeltypen haben eine große Zahl an Parametern um alle Einstellungen ändern zu können. Indem diese korrekt eingestellt werden kann man nahezu alle Arten von Effekten erzeugen. Wir diskutieren diese Einstellungen nun.Es gibt folgende Routinen um sie zu erstellen und zu zerstören:
part_type_create() Erstellt einen neuen Partikeltyp. Die Funktion gibt den Index des Typs zurück. Dieser Index muss in alle Aufrufen benutzt werden, um die Eigenschaften des Partikeltyps zu setzen.
part_type_destroy(ind) Zerstört den Partikeltyp ind. Rufe diese Funktion auf wenn du es nicht mehr brauchst um Platz zu sparen.
part_type_destroy_all() Zerstört alle Partikeltypen die erstellt wurden.
part_type_exists(ind) Gibt zurück, ob der angegebene Partikeltyp existiert.
part_type_clear(ind) etzt den Partikeltyp ind auf seine voreingestellten Einstellungen zurück.
Die Partikelform
Ein Partikel hat eine Form. Diese Form wird durch ein Sprite bestimmt. Du kannst jedes Sprite benutzen, und es gibt 15 eingebaute Sprites. Diese sind alle 64x64 Pixel groß und haben Alphawerte, sodass sie sehr schön in den Hintergrund übergehen. Sie werden durch die folgenden Konstanten bestimmt:- pt_shape_pixel
- pt_shape_disk
- pt_shape_square
- pt_shape_line
- pt_shape_star
- pt_shape_circle
- pt_shape_ring
- pt_shape_sphere
- pt_shape_flare
- pt_shape_spark
- pt_shape_explosion
- pt_shape_cloud
- pt_shape_smoke
- pt_shape_snow
Mit der folgenden Funktion kannst du die Form einstellen:
part_type_shape(ind, shape) Setzt die Form auf eine der oben angegebenen Konstanten (standardmäßig pt_shape_pixel).
Du kannst auch ein eigenes Sprite als Partikel benutzen. Sollte das Sprite noch mehrere Subimages besitzen kannst du angeben wie mit ihnen verfahren werden soll. Du kannst zufällig eines auswählen, das Sprite animieren, am Anfang oder an einer zufälligen Stelle der Animation starten usw. Hierfür kannst du die folgende Funktion benutzen.
part_type_sprite(ind, sprite, animat, stretch, random) Stellt dein eigenes Sprite für den Partikeltypen ein. Mit animate gibst du an ob das Sprite animiert werden soll (1) oder nicht (0). Mit stretch (1 oder 0) gibst du an, ob die Animation über die Lebenszeit des Partikels gestreckt werden soll. Und mit random (1 oder 0) Kannst du festlegen ob ein zufälliges Subimage zum starten verwandt werden soll.
Wenn du das Sprite für den Partikeltyp gewählt hast (entweder eine Standardform oder deine eigene) kannst du dessen Größe angeben. Eine Größe von 1 ist die normale Größe des Sprites. Ein Partikeltyp kann so definiert sein das alle Partikel dieselbe Größe oder unterschiedliche Größen besitzen. Du kannst den Raum der möglichen Größen bestimmen. Du kannst auch festlegen, ob die Größe sich über die Lebenszeit verändert und ob ob die Größe etwas hin und her wandert, was dem Partikel einen Blinkeffekt verleiht.
part_type_size(ind, size_min, size_max, size_incr, size_wiggle) Setzt die Größenparameter des Partikels. Du gibst die minimalste Startgröße, die maximalste Startgröße, den Größenzuwachs in jeden Step (nutze eine negative Zahl um ihn zu schrumpfen) und die Menge an "wackelnder" Größenänderung an. (Die Standardgröße ist 1 und normalerweise ändert sich die Größe nicht.)
part_type_scale(ind, xscale, yscale) Stellt die horizontale und vertikale Saklierung ein. Dieser Faktor wird mit der Größe multipliziert. Es ist sehr nützlich wenn du die Skalierung in die x- und y-Richtung unterschiedlich einstellen willst.
Die Partikel haben auch eine Ausrichtung. Wiederum kann die Ausrichtung für alle Partikel gleich , unterschiedlich und über die Lebenszeit veränderlich sein. Die Winkel geben die Richtung gegen den Uhrzeigersinn an, in Grad gemessen.
part_type_orientation(ind, ang_min, ang_max, ang_incr, ang_wiggle, ang_relative) Stellt die Ausrichtungseigenschaften für den Partikeltypen ein. Die gibts die minimale Ausrichtung, die maximale Ausrichtung, die Änderung in jedem Step und das "Wackeln" pro Winkel an. (Standardwerte sind 0.) Du kannst auch festlegen ob die Werte relativ (1) oder absolut (0) zur aktuellen Bewegungsrichtung sind. Z.B. indem man alle Werte auf 0, aber qng_relative auf 1 setzt, wird die Partikelausrichtung exakt der Bewegungsrichtung des Partikels folgen.
Farbe und Farbmischung
Die Partikel werden eine Farbe haben. Es gibt verschiedene Möglichkeiten die Farbe eines Partikels einzustellen. Der einfachste Weg ist eine einfache Farbe einzustellen. Du kannst auch zwei oder drei Farben angeben, zwischen denen der Partikel dann auf seiner Lebenszeit interpoliert wird. Beispielsweise kann der Partikel weiß starten und mit der Zeit immer schwärzer werden. Eine andere Möglichkeit ist es das du einstellst, dass alle Partikel andere Farben besitzen sollen, ausgewählt aus einem vorgegebenen Farbraum. Du kannst einen Bereich entweder in Rot, Grün und Blau, oder in Farbton, Sättigung und Wert angeben.Die Standardfarbe ist weiß. Wenn du ein Sprite mit eigenen Farben nutzt willst du normalerweise auch diese sehen, also muss keine Farbe eingestellt werden.
part_type_color1(ind, color1) Gibt eine einfache Farbe an, die der Partikel benutzen soll.
part_type_color2(ind, color1, color2) Gibt zwei Farben an, zwischen denen der Partikel interpoliert.
part_type_color3(ind, color1, color2, color3) Dasselbe, aber diesmal mit drei Farben die die Farben beim Start, in der Mitte und am Ende repräsentieren.
part_type_color_mix(ind, color1, color2) Mit dieser Funktion kannst du den Partikel anweisen, eine zufällige Mixtur zwischen den beiden Farben anzunehmen. Diese Farbe bleibt während des Lebens des Partikels gleich.
part_type_color_rgb(ind, rmin, rmax, gmin, gmax, bmin, bmax) Kann genutzt werden um einzustellen, das jeder Partikel einen festen Farbwert hat, der aber aus einem Farbraum kommen soll. Du gibst den Bereich mit Rot-, Grün- und Blaukomponente der Farbe an (jede zwischen 0 und 255).
part_type_color_hsv(ind, hmin, hmax, smin, smax, vmin, vmax) Kann genutzt werden um einzustellen, das jeder Partikel einen festen Farbwert hat, der aber aus einem Farbraum kommen soll. Du gibst den Bereich mit Farbton-, Sättigungs- und Wertkomponente der Farbe an (jede zwischen 0 und 255).
Daneben kannst du auch einen Alphawert festlegen. Die eingebauten Partikelformen haben schon etwas Alphatransparenz, aber du kannst dies dazu nutzen um einen Partikel über eine Zeit hinweg verschwinden zu lassen.
part_type_alpha1(ind, alpha1) Stellt einen einfachen Alphawert (0-1) für den Partikeltyp ein.
part_type_alpha2(ind, alpha1, alpha2) Dasselbe, aber diesmal mit Start- und Endwert, dazwischen wird interpoliert.
part_type_alpha3(ind, alpha1, alpha2, alpha3) Diesmal drei Werte, aus denen die Transparenz interpoliert wird.
Normalerweise werden Partikel wie Sprites auf den Hintergrund gemischt. Aber du kannst auch additives Mischen benutzen. Die gibt den Explosionen z.B. den letzten Schliff.
part_type_blend(ind, additive) Stellt ein ob additives (1) oder normales (0) Mischen angewandt wird.
Leben und Tod
Partikel existieren nur eine begrenzte Zeit lang, ihre Lebenszeit. Danach verschwinden sind. Die Lebenszeit wird in Steps gemessen. Du kannst die Lebenszeit (oder einen Bereich von Lebenszeiten) für jeden Partikeltyp bestimmen. Partikel können neue Partikel eines anderen Typs erzeugen. Es gibt hierfür zwei Möglichkeiten. Sie können in jedem Step oder beim Tod neue Partikel erzeugen. Sei aber behutsam, die Gesamtzahl an Partikeln das nicht zu hoch werden.
part_type_life(ind, life_min, life_max) Setzt die Lebenszeitgrenzen des Partikels. (Standardmäßig beide 100.)
part_type_step(ind, step_number, step_type) Setzt die Zahl und den Typ des Partikels, der in jedem Step von dem angegebenen Partikel erzeugt wird. Wenn du einen negativen Wert angibst, wird in jeden Step ein Partikel mit der Chance von -1/Wert erzeugt. So ergibt beispielsweise ein Wert von -5 durchschnittlich alle 5 Steps einen Partikel.
part_type_death(ind, death_number, death_type) Setzt die Zahl und den Typ des Partikels, der generiert wird, wenn der angegebene Partikel stirbt. Auch hier können negative Werte verwendet werden. Beachte, das der Partikel nur am Ende seiner Lebenszeit andere Partikel erzeugt, nicht bei Berührung eines Destroyers (siehe unten).
Partikelbewegung
Partikel können sich während ihrer Lebenszeit bewegen. Sie haben eine Anfangsgeschwindigkeit (oder einen Bereich) und eine Richtung, beide können sich während der Lebenszeit ändern. Auch kann die Gravitation, die einen Partikel in eine bestimmte Richtung zieht, gewählt werden.Die folgenden Funktionen existieren hierfür:
part_type_speed(ind, speed_min, speed_max, speed_incr, speed_wiggle) Setzt die Geschwindigkeitseigenschaften eines Partikeltyps. (Standardmäßig sind alle Werte 0.) Du gibst eine minimale und eine maximale Geschwindigkeit an. Ein zufälliger Wert zwischen diesen Grenzen wird dann gewählt, wenn der Partikel erzeugt wird. Du kannst einen Geschwindigkeitszuwachs in jedem Step einstellen. Negative Werte bremsen den Partikel (die Geschwindigkeit fällt aber nie unter 0). Schließlich kannst du etwas "Wackelgeschwindigkeit" angeben.
part_type_direction(ind, dir_min, dir_max, dir_incr, dir_wiggle) Setzt die Richtungseinstellungen des Partikels. (Standardmäßig sind alle Werte 0.) Wiederum gibst du hier einen Bereich an (gegen den Uhrzeigersinn in Grad; 0 ist eine Bewegung nach rechts). Um beispielsweise einen Partikel in eine zufällige Richtung zu bewegen wähle 0 und 360 als Werte. Du kannst einen Richtungszuwachs für jeden Step angeben, und eine "Wackelrichtung".
part_type_gravity(ind, grav_amount, grav_dir) Setzt die Gravitationseigenschaften. (Standardmäßig gibt es keine Gravitation.) Du gibst den Wert der Gravitation an, der in jedem Step hinzugefügt wird, und die Richtung. Z.B. 270 für eine Abwärtsbewegung.
Alternative Versionen
Auch verfügbar in:
Download helpfile