public PrimitiveParticleSystem(PrimitiveParticleSystemInfo psi) { for (int i = 0; i < MAX_PARTICLES; i++) { particles[i] = new ParticlePrimitive(); } info = psi; vecLocation.X=vecPrevLocation.X=0.0f; vecLocation.Y=vecPrevLocation.Y=0.0f; fTx=fTy=0; fScale = 1.0f; fEmissionResidue=0.0f; nParticlesAlive=0; fAge=-2.0f; }
public override void Start() { //var meshAsset = Engine.Assets.Load <MeshAsset> (); //var vb = Platform.Graphics.CreateVertexBuffer (meshAsset.VertexDeclaration, meshAsset.VertexCount); //vb.SetData <REFLECTION> () var ta = Engine.Assets.Load <TextureAsset> ("assets/cvan01.bba"); tex1 = Platform.Graphics.CreateTexture (ta); var tb = Engine.Assets.Load <TextureAsset> ("assets/bg2.bba"); tex2 = Platform.Graphics.CreateTexture (tb); q = new Triple (); q.blend = BlendMode.Default; q.tex = tex1; q.v [0].Colour = Rgba32.Blue; q.v [0].Position.X = 0.0f; q.v [0].Position.Y = 0.0f; q.v [0].UV = new Vector2 (0, 0); q.v [1].Colour = Rgba32.Green; q.v [1].Position.X = 0.5f; q.v [1].Position.Y = 0.5f; q.v [1].UV = new Vector2 (1f, 1f); q.v [2].Colour = Rgba32.Red; q.v [2].Position.X = 0f; q.v [2].Position.Y = 0.5f; q.v [2].UV = new Vector2 (0, 1f); returnScene = this; s = new SpritePrimitive (this.Engine.PrimitiveRenderer, tex2, 64, 64, 256, 256); s.SetBlendMode (BlendMode.Default); var psi = new PrimitiveParticleSystemInfo (); psi.sprite = s; psi.fLifetime = 3f; psi.colColourStart = Rgba32.Red; psi.colColourEnd = Rgba32.Yellow; psi.nEmission = 10; psi.fSpinStart = 0.3f; psi.fRadialAccel = 0.1f; psi.fSpeed = 3f; psi.fSizeVar = 0.1f; ps = new PrimitiveParticleSystem (psi); }