Partikelobjekt: Unterschied zwischen den Versionen
Zeile 42: | Zeile 42: | ||
Einem Partikelsystem werden folgende [[IParticleRangeValue|RangeValues]] gegeben: | Einem Partikelsystem werden folgende [[IParticleRangeValue|RangeValues]] gegeben: | ||
− | * | + | * InitialSize zwischen 10 und 20. |
− | * | + | * Size zwischen 50 und 100 ab 0ms und 0 und 50 ab 1000ms |
Partikel 1 bekommt zufällig eine Größe zwischen 10 und 20, zB. 15. Der Size-Wert modifiziert diesen Initialwert, in dem Fall prozentual. Das heißt das Partikel ist zwischen 50% * 15 und 100% * 15 groß ab Sekunde 0 seiner Lebenszeit. Der genaue Wert wird durch die zufällig gewählte Wichtung ermittelt, sagen wir 50%. Die Wichtung legt also die Mitte des Bereichs fest. Demnach ist die Wichtung 75%, also die Mitte zwischen 50 und 100. Daher hat der Partikel zum Zeitpunkt 0ms (also dem Zeitpunkt seines Emittierens) die Größe 75% * 15 = 11,25. | Partikel 1 bekommt zufällig eine Größe zwischen 10 und 20, zB. 15. Der Size-Wert modifiziert diesen Initialwert, in dem Fall prozentual. Das heißt das Partikel ist zwischen 50% * 15 und 100% * 15 groß ab Sekunde 0 seiner Lebenszeit. Der genaue Wert wird durch die zufällig gewählte Wichtung ermittelt, sagen wir 50%. Die Wichtung legt also die Mitte des Bereichs fest. Demnach ist die Wichtung 75%, also die Mitte zwischen 50 und 100. Daher hat der Partikel zum Zeitpunkt 0ms (also dem Zeitpunkt seines Emittierens) die Größe 75% * 15 = 11,25. |
Version vom 23. Juni 2014, 12:52 Uhr
Das Partikelobjekt ist vom Typ IParticle und leitet von ISlideShowObject ab. Mit diesem Objekt kann man Partikeleffekte erstellen.
IParticle inherits from ISlideShowObject
function InitialSpeed: IParticleRangeValue
function Speed: IParticleRangeValue
function InitialDirection: IParticleVectorRangeValue
function Direction: IParticleVectorRangeValue
function InitialSize: IParticleRangeValue
function Size: IParticleRangeValue
function InitialRotation: IParticleVectorRangeValue
function Rotation: IParticleVectorRangeValue
function InitialRotationFrequency: IParticleVectorRangeValue
function RotationFrequency: IParticleVectorRangeValue
property Move: TParticleMove
function InitialMoveStrength: IParticleVectorRangeValue
function MoveStrength: IParticleVectorRangeValue
function InitialMoveSineFrequency: IParticleRangeValue
function MoveSineFrequency: IParticleRangeValue
function MaxAge: IParticleRangeValue
function ParticlesPerSecond: IParticleRangeValue
function EmitterSpread: IParticleRangeValue
property SpriteAnimation: TParticleSpriteAnimation
function SpriteAnimationFrequency: IParticleRangeValue
property Filename: IFilename
property Clipping: Boolean
property PreWarmTime: Integer
property Emitter: TParticleEmitter
property Options: TParticleOptions
property Environment: TParticleEnvironment
property Seed: Int64
end;
Beispiel
Einem Partikelsystem werden folgende RangeValues gegeben:
- InitialSize zwischen 10 und 20.
- Size zwischen 50 und 100 ab 0ms und 0 und 50 ab 1000ms
Partikel 1 bekommt zufällig eine Größe zwischen 10 und 20, zB. 15. Der Size-Wert modifiziert diesen Initialwert, in dem Fall prozentual. Das heißt das Partikel ist zwischen 50% * 15 und 100% * 15 groß ab Sekunde 0 seiner Lebenszeit. Der genaue Wert wird durch die zufällig gewählte Wichtung ermittelt, sagen wir 50%. Die Wichtung legt also die Mitte des Bereichs fest. Demnach ist die Wichtung 75%, also die Mitte zwischen 50 und 100. Daher hat der Partikel zum Zeitpunkt 0ms (also dem Zeitpunkt seines Emittierens) die Größe 75% * 15 = 11,25. Der Size-Wert ändert sich über die Zeit. Allerdings bleibt die Wichtung pro Partikel gleich. Der Size-Wert sagt, dass die Partikel bei Sekunde 1 nur noch zwischen 0 und 50% des Initialwertes groß sind. Durch die Wichtung von 50% ergibt sich ein Size-Wert von 25%, also der Mitte zwischen 0 und 50%. Daher hat das Partikel zum Zeitpunkt 1000ms die Größe 25% * 15 = 3,75.
Für Partikel 2 wird eine neue Initialgröße vergeben (deren Bereich sich über die Zeit natürlich auch verändern kann). Ebenso wird eine neue Wichtung ermittelt, zB. Initialgröße von 12 und einer Wichtung von 100%. Demnach ist das Partikel 2 zum Zeitpunkt 0ms 12 Einheiten groß und nach einer Sekunde nur noch 6.
Die unterschiedlichen Werte zu unterschiedlichen Zeitpunkten werden interpoliert.
var Particle := SlideShowObject as IParticle;
Particle.InitialSize.SetValue(0, 0, 10);
Particle.InitialSize.SetValue(1, 0, 20);
Particle.Size.SetValue(0, 0, 50);
Particle.Size.SetValue(1, 0, 100);
Particle.Size.SetValue(0, 1000, 0);
Particle.Size.SetValue(1, 1000, 50);