Partikelobjekt: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
Das Partikelobjekt ist vom Typ '''IParticle''' und leitet von '''[[ISlideShowObject]]''' ab. Mit diesem Objekt kann man Partikeleffekte erstellen. | Das Partikelobjekt ist vom Typ '''IParticle''' und leitet von '''[[ISlideShowObject]]''' ab. Mit diesem Objekt kann man Partikeleffekte erstellen. | ||
+ | |||
+ | Das Partikelobjekt enthält unter anderem Eigenschaften des Typs [[IParticleRangeValue]] bzw. [[IParticleRangeValue|IParticleVectorRangeValue]]. Einige dieser Eigenschaften verfügen über Initialwerte (wie ''Size'' und ''InitialSize''). Die Initialwerte geben den Ausgangszustand des Wertes an, die Nicht-Initialwerte geben eine Änderung an. Die Initialwerte bekommen einen Wertebereich. Beim Emittieren eines Partikels wird dem neuen Partikel ein zufälliger Werte innerhalb dieses Bereichs zugewiesen. Die Änderungswerte erhalten ebenfalls einen Bereich. Der Unterschied ist, dass bei ihnen vorher eine Wichtung ermittelt wird. Diese wird benutzt um die Änderungen über die Lebenszeit des Partikels immer gleich gewichtet zu haben (siehe [[#Beispiel|Beispiel]]). | ||
<code> | <code> | ||
Zeile 49: | Zeile 51: | ||
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. | 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. | ||
− | |||
− | |||
<code> | <code> |
Version vom 23. Juni 2014, 12:56 Uhr
Das Partikelobjekt ist vom Typ IParticle und leitet von ISlideShowObject ab. Mit diesem Objekt kann man Partikeleffekte erstellen.
Das Partikelobjekt enthält unter anderem Eigenschaften des Typs IParticleRangeValue bzw. IParticleVectorRangeValue. Einige dieser Eigenschaften verfügen über Initialwerte (wie Size und InitialSize). Die Initialwerte geben den Ausgangszustand des Wertes an, die Nicht-Initialwerte geben eine Änderung an. Die Initialwerte bekommen einen Wertebereich. Beim Emittieren eines Partikels wird dem neuen Partikel ein zufälliger Werte innerhalb dieses Bereichs zugewiesen. Die Änderungswerte erhalten ebenfalls einen Bereich. Der Unterschied ist, dass bei ihnen vorher eine Wichtung ermittelt wird. Diese wird benutzt um die Änderungen über die Lebenszeit des Partikels immer gleich gewichtet zu haben (siehe Beispiel).
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.
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);