Partikel-Flugrichtung bestimmen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

x-pressive

Betreff: Partikel-Flugrichtung bestimmen

BeitragDi, Feb 24, 2004 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hilfe! Marmelade im Hirn Confused ! Kurz erklärt: ich habe ein Pivot, den man völlig frei drehen und positionieren kann. Das ist quasi mein Emitter. Wenn ich jetzt Partikel erzeuge, sollten diese an der Stelle des Emitters starten und IMMER in die Richtung fliegen, in die die (positive) Y-Achse des Emitters zeigt.

Jedes Partikel hat die Variablen schrittX, schrittY und schrittZ, die angeben sollten, um wie viele Einheiten das Partikel mit jedem Frame in die jeweilige Richtung bewegt werden soll. Da die Partikel selbst nicht rotiert werden, muß ich also die Rotation des Emitter-Pivots irgendwie in diese drei Werte transformieren.

Würde das evtl. mit TFormVector funktionieren?
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Jan_

Ehemaliger Admin

BeitragMi, Feb 25, 2004 8:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, da würde ich empfehlen:
--> Hier Klicken (244 KB) <--
Für meine Partikelengine!

Und entweder die einfügen oder dir anschauen, wie ich es gemacht habe!
between angels and insects

x-pressive

BeitragMi, Feb 25, 2004 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm.. bei diesem Beispiel dreht sich aber die Explosion noch mit, wenn ich den Emitter drehe -und wenn ich den Emitter um 180 Grad nach unten drehe, fliegen die Partikel nach oben Smile Genau das wollte ich eigentlich vermeiden.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Markus2

BeitragMi, Feb 25, 2004 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst einen Dummy Pivot noch hinzu nehmen und den
an den anderen dran hängen wenn der noch nicht gedreht ist .
Dann mit Move 0,1,0 nach oben schieben und du bekommst
den Richtungsvector aus der Position die im Bereich XYZ bei 0-1 liegt .
Aber die Globale nehmen abzüglich des Parent Pivots .

x-pressive

BeitragMi, Feb 25, 2004 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Richtungsvektor müsste ich doch aber auch so bekommen, oder verwechsle ich da etwas?

TFormVector 0,1,0,Emitter,0

schrittX = TFormedX()
schrittY = TFormedY()
schrittZ = TFormedZ()
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Markus2

BeitragMi, Feb 25, 2004 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Transform gehts auch aber ich muß da selber jedes mal
Experimente machen um auf das Ergebnis zu kommen was
ich haben will Wink

x-pressive

BeitragDo, Feb 26, 2004 10:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, so geht's mir eben auch -habe eben gehofft, das jemand eine kluge Formel oder so parat hat... Wink
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

x-pressive

BeitragDo, Feb 26, 2004 11:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm... kann sich jemand folgendes erklären:

Ich habe einen Pivot (ohne Parent), den ich auf X=5, Y=0, Z=50 positioniere.

Wenn ich nun diese Koordinaten (die ja eigentlich schon global sind) mal zum Test in globale umwandle, erhalte ich folgendes:

x# = EntityX (Pivot)
y# = EntityY (Pivot)
z# = EntityZ (Pivot)

TFormPoint x,y,z,Pivot,0

x: 8.53
y: -3.53
z: 100.00

Wie kann denn DAS bitte sein..??
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Markus2

BeitragDo, Feb 26, 2004 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann haste den Transform Befehl mißverstanden Wink

Transform mal nach Vector 0,1,0,Entity oder so .

x-pressive

BeitragDo, Feb 26, 2004 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast recht -war Blödsinn. Ich beziehe mich bei TFormPoint ja nicht auf die Koordinaten des Pivots, sondern auf die Koordinaten INERHALB des Pivots, oder? Ist eh egal, hatte nichts mit meinem Problem zu tun.
*Zurückspul*

Aber Sache mit der Flugbahn scheint jetzt zu funktionieren. Ich drehe den Pivot nach Belieben. Da die Partikel den Pivot immer an seiner positiven Y-Achse verlassen, errechne ich deren Flugbahn so:

TFormVector 0,speed,0, EmitterPivot,0
speedX# = TFormedX()
speedY# = TFormedY()
speedZ# = TFormedZ()

Das scheint hinzuhauen. Allerdings treten alle Partikel so eben nur an einem Punkt aus und fliegen genau in Richtung der Y-Achse des Pivots. Okay, das kann man noch mit Zufallswerten ein bisschen hin- und her variieren.

Was aber, wenn ich nun genau bestimmen möchte, in welchem WINKEL die Partikel rausfliegen. Ein Winkel von 15 Grad würde z.B. bedeuten, das die Partikel an der Y-Achse austreten, aber +-7.5 Grad von der Richtung der Y-Achse abweichen können (sich also Fächerförmig ausbreiten). Ein Winkel von vollen 360 Grad wiederrum würde z.B. bedeuten, das die Partikel nach allen Seiten fliegen, also einen Kreis bilden usw.

Wie könnte man das realisieren? Grübel... Confused Eine Sin/Cos-Formel vielleicht..?
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Markus2

BeitragDo, Feb 26, 2004 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist auch ganz einfach , du richtest deine Partikel erstmal mit
Align to Vector aus und benutzt dann TrunEntity e,0,Yaw,0
und dann TurnEntity e,Pitch,0,0 oder TurnEntity e,0,0,Roll

Heißt also du kannst sie in alle Richtungen verteilen
(360 Grad von oben gesehen) und
wenn du Pitch o. Roll dazu nimmst haste deinen Fächer .

Wenn du Sprites benutzt kannste die ja direkt automatisch
zur Camera ausrichten lassen was auch default ist .
Evtl. das Sprite an einen Pivot hängen .

Wenn ich mich jetzt nicht vertan habe ,
in diesem Spiel kommen Partikel vor .
Kannste ja mal ansehen .
http://home.kamp.net/home/r15502/MR_BallGame.zip
PS:Wenns das Fußballspiel ist dann nicht Wink

x-pressive

BeitragDo, Feb 26, 2004 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn es sooo einfach wäre, würde ich ja nicht gleich posten Smile Ich benutze keine Sprites, sondern single surface quads, wobei ich von jedem quad nur den Mittelpunkt, also einmal X/Y/Z-Koordinaten speichere. Das macht es nämlich erst so richtig vertrackt...

Okay, ich könnte Dummy-Pivots usw. benutzen und diese rotieren, aber das pro Frame einige hundert mal, wäre sicherlich auch nicht empfehlenswert, oder?
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Markus2

BeitragDi, März 02, 2004 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
In dem Ballspiel hatte ich auch PartikelMeshes um die Punkte
Zahl anzuzeigen wenn man was einsammelt und diese Meshes fliegen dann zur Kamera und verschwinden nach einer Zeit .

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group