knittel - Sa 06.11.10 19:57
Titel: [Andorra 2D] Particles
Hallo allerseits
Ich habe mit dem PartEd eine .axp Datei von einer Explosion erstellt. Ich lade diese mit LoadFromFile in delphi. Die Explosion besteht aus BillboardParticles, allerdings drehen sich die Particle nicht, wenn die Explosion abgespielt wird.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure Form1.Create (); begin [...] ParticleSystem := TAdParticleSystem.Create(AdDraw); ParticleSystem.Texture := ImageList.Items[UnitManager.FindImageIndexOf('ExplosionParticle')].Texture; ParticleSystem.DefaultParticle.LoadFromFile('Engine\explosion.axp'); [...] end;
procedure Form1.Idle (); begin [...] ParticleSystem.Move(Performance.TimeGap / 1000); ParticleSystem.Draw(AdDraw, 0, 0, bmAdd); [...] end;
procedure TUnit.Destruction (); begin ParticleSystem.Emit(40,round(FXpos-2*(Map.ScrolledToX-200)),round(FYpos-2*(Map.ScrolledToY-150))); end; |
Die Partikel erscheinen zwar, aber sie drehen sich nicht noch verändern sie ihre Größe. Also fehlen genau die Eigenschaften die, das BillboardPartikel hat. Wie schaffe ich es das Die Partikelengine erkennt, dass ich ein BillboardPartikel verwende?
Danke im vorraus.
EDIT: Mir ist gerade aufgefallen, dass er die Datei garnicht richtig lädt. Auch andere Eigenschaften wie Lifetime stimmen nicht überein.
knittel - Mi 15.12.10 12:59
Ich hab das problem mittlerweile manuell gelöst
etwa so (einfach die werte aus dem partikel editor abschreiben):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| var MyDefaultParticle: TAdBillboardParticle; ParticleSystem: TAdParticleSystem; ImageList: TAdImageList;
procedure Main begin ParticleSystem.Texture := ImageList.Items[UnitManager.FindImageIndexOf('ExplosionParticle')].Texture; MyDefaultParticle := TAdBillboardParticle.Create(ParticleSystem); ParticleSystem.DefaultParticle := MyDefaultParticle;
with MyDefaultParticle do begin Lifetime := 0.4; XVelocity.Start:= 100; XVelocity.Stop := 50; YVelocity.Start:= 100; YVelocity.Stop := 50; XVelocity.Variation := 50; YVelocity.Variation := 50; Size.Start := 0.75; Size.Stop := 1.5; Size.Variation := 100; Angle.Start := 3; Angle.Stop := 9; Angle.Variation:= 100; end; end; |
Funktioniert so gut.