Partikelengine

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

 

E. Urbach

ehemals "Basicprogger"

Betreff: Partikelengine

BeitragDo, Jul 13, 2006 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine PartikelEngine, die nach dem folgenden Prinzip arbeitet:
Es gibt verschiedene Arten von Partikeln, die alle Methoden einer Basisklasse TParticle erben. Für jeden Partikeltyp gibt es eine Update-Funktion, aber damit es nicht zu umständlich wird, kann man mit UpdateParticleEngine() alle Partikeltypen und das dazugehörige System updaten.
Partikel haben für alles einen Start- und einen Endwert. Zwischen diesen Werten wird dann interpoliert. Davon betroffen sind Position, Rotation, Skalierung, Farbe, Alpha und Geschwindigkeit. Als kleines Extra gibt es noch die Gravity-Partikel, die von der X- oder der Y-Achse angezogen werden. Partikel, die vom Wind beeinflusst werden, können über die Hermite-Interpolation erzeugt werden.

Screenshots:

user posted image user posted image
user posted image user posted image
user posted image user posted image
user posted image user posted image
user posted image user posted image

Die folgenden Klassen sind fest in der Engine integriert:

Code: [AUSKLAPPEN]
TParticle
TParticleTween
TParticleHermite
TParticleWind
TParticleGravityX
TParticleGravityY
TParticleGravityXY
TEffect
TParticleTemplate
TEmitterTween


Außer den Partikeln selbst gibt es auch noch Emitter, die Partikel in einem bestimmten Winkel erstellen und auch rotieren können. Im Moment ist nur ein Emittertyp implementiert, da er am häufigsten verwendet wird:

Code: [AUSKLAPPEN]
TEmitterTween


Wer eine eigene Partikelklasse schreiben will, der kann sie von der Basisklasse TParticle ableiten und die Methoden Update(), Draw(), Move() und Reset() überschreiben.

Ein neues Feature stellen die Effekte dar, die flexibel aus Dateien geladen werden können. Es gibt zahlreichne Extras für die Werte in den Effektdateien, die durch die Skriptsprache realisiert werden. Beispielsweise kann ein Effekt zufällig auf dem Bildschirm platziert und ein Sound mit der richtigen Balance abgespielt werden.

Code: [AUSKLAPPEN]
TEffect


Effekte speichern Templates, die Schablonen für einen Partikeltyp. Die Templates werden automatisch vom Partikelsystem verwendet, man muss also nicht umständlich eigene Schablonen erstellen, sie werden einfach aus Dateien geladen und als TEffect zurückgeliefert.

Code: [AUSKLAPPEN]
TParticleTemplate


Mit der Funktion LoadEffect wird ein solcher Effekt aus einer Datei geladen und mit der Methode Play abgespielt/gestartet:

Code: [AUSKLAPPEN]
Global myEffect:TEffect = LoadEffect("fire.ini")
myEffect.Play()


Diese Effektdateien mit der Endung .ini sehen beispielsweise so aus:

Code: [AUSKLAPPEN]
[Sound]
soundFile=sample5-sound1.wav
soundRate=1.0
soundPan=RelativeToX()
soundDepth=-1.0
soundVolume=0.9
group=1
[/Sound]

[Fire]
image=sample3-img1.png
count=10
group=1
x=MouseX()
y=MouseY()
endX=x+Rand(-200,200)
endY=y+Rand(-200,200)
rotation=Rand(10,350)
endRotation=Rand(10,350)
alpha=1.0
endAlpha=0.0
scaleX=1.0
scaleY=1.0
endScaleX=2.0
endScaleY=2.0
r=255
g=255
b=0
endR=255
endG=0
endB=0
speed=0.2
endSpeed=0.1
[/Fire]

[Smoke]
image=&Fire
count=5
group=1
x=0
y=0
endX=x+Rand(-200,200)
endY=y+Rand(-200,200)
rotation=0
endRotation=360
alpha=0.5
endAlpha=0.0
scaleX=1.0
scaleY=1.0
endScaleX=2.0
endScaleY=2.0
r=128
g=128
b=128
endR=32
endG=32
endB=32
speed=0.2
endSpeed=0.1
[/Smoke]


Die Funktionen sind vollständig dokumentiert.
Sollte man einmal die Parameter für CreateParticleTween vergessen, einfach auf den Befehl klicken und F1 drücken.

Links:

Download (Win32)
(6,59 MB)

Download (Win32, ohne Beispielcodes)
(16 KB)

Sample-Download mit 7 Beispielcodes (Win32 EXE)
(4,36 MB)

Support-Forum
Website
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
  • Zuletzt bearbeitet von E. Urbach am Mi, Mai 09, 2012 15:06, insgesamt 5-mal bearbeitet

BtbN

BeitragDo, Jul 13, 2006 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, würd ja gerne testen, aber ohne Source oder eine kompilierte Linux version geht das leider nicht.
 

E. Urbach

ehemals "Basicprogger"

BeitragSa, Jul 15, 2006 8:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab ja extra dazugeschrieben, dass es nur für Win32 ist Wink
Schau mal bitte bei deinen PNs vorbei.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

E. Urbach

ehemals "Basicprogger"

BeitragSo, Jan 21, 2007 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Update 1.2.2
Arrow Hinzugefügt: Datei-basierte Effekte
Arrow Hinzugefügt: TParticleTemplate
Arrow Hinzugefügt: TParticleWind
Arrow Hinzugefügt: UpdateParticleEngine
Arrow Hinzugefügt: Dokumentation
Arrow Optimiert: Geschwindigkeit

Update 1.1.2
Arrow Hinzugefügt: TEmitterTween
Arrow Hinzugefügt: UpdateEmitters
Arrow Hinzugefügt: CreateParticleHermite
Arrow Optimiert: Geschwindigkeit
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

Wild-Storm

BeitragSo, Feb 04, 2007 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Wäre es nicht möglich, dass du den Code einer Person deines Vertrauens, der auch ein anderes OS hat, zu geben und das Modul dann zu kompilieren?
Ich glaube kaum, dass hier Leute sind, die Interesse daran haben, den Code weiterzugeben!
Da die Screens richtig geil aussehen wärs halt cool, das auch auf anderen Systemen zu haben Wink

Wenn du niemanden findest kann ichs dir auch schnell kompilieren (für Linux)..

mfg
Visit http://www.next-dimension.org
-------------------------------------------------
Freeware Modelle, Texturen & Sounds:
http://www.blitzforum.de/forum...hp?t=12875
 

E. Urbach

ehemals "Basicprogger"

BeitragDi, Mai 27, 2008 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich Blitz Max schon seit einiger Zeit nicht mehr aktiv nutze und Open Source unterstützen möchte, gebe ich nun den Quellcode von meiner Partikelengine (Partikelsystem) frei:

Nutzungsbedingungen:
Zitat:
- Für kommerzielle und private Projekte frei nutzbar
- Es ist erlaubt, den Quellcode zu verändern und neu zu kompilieren, aber die Änderungen müssen
im Blitz Basic Portal publiziert werden:

https://www.blitzforum.de/foru...hp?t=18855


Wurde nur auf Windows getestet, sollte aber auch auf anderen Plattformen funktionieren.
Der Quellcode ist alt und es gibt von meiner Seite keinen Support (wenn jemand Bugs entdeckt, werde ich die selbstverständlich fixen, wenn ich die Zeit dafür finde).
Außerdem gibt es keine Keyframe-Interpolation. Wer diese benötigt, sollte sich ein anderes Modul suchen oder den Quellcode modifizieren und den neuen Quellcode hier vorstellen.

Links:
Nur Quellcodes + Sample-Codes (20,5 KB, ohne Grafiken, Sounds und vorkompilierten Binaries, nur Quellcodes)
Das ganze Paket mit möglicherweise veralteten Binaries (7,07 MB, Quellcodes + vorkompilierte Samples + Screenshots + Grafiken + Sounds)
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group