public BeamSpellEffect(ParticleEffect effect, GeometrySampler sampler) { this.effect = effect; this.sampler = sampler; emitter = effect.CreateCustomEmitter(1 / 100f, p => { p.StartPosition = seeder.NextFloat(0, 0.3f) * new Vector3(sampler.RandomPointOnCircle(), 0); p.Color = new Color4(1, 0, 0); p.Size = 0.1f; p.StartVelocity = new Vector3(0, 0, seeder.NextFloat(-1, -1)) * 50; p.Duration = 1f; }); }
public BurstSpellEffect(ParticleEffect effect) { this.effect = effect; sampler = new GeometrySampler(seeder); emitter = effect.CreateCustomEmitter(1 / 100f, p => { p.Color = new Color4(1, 0, 0); p.Size = 0.1f; p.StartVelocity = new Vector3(seeder.NextFloat(-1, 1) * 2, seeder.NextFloat(-1, 1) * 0.7f, seeder.NextFloat(-4, -5)); p.Duration = 1f; }); }
public void TestBoxRenderer() { var effect = new ParticleEffect(); test.ObserveUpdate(effect.Update); test.SetCameraPosition(new Vector3(10, 3, 0), new Vector3()); var emitter = effect.CreateCustomEmitter(1 / 100f, p => { p.Color = new Color4(1, 0, 0); p.Size = 0.1f; p.StartVelocity = new Vector3(0, 0, -5); p.Duration = 1; }); emitter.Start(); var renderer = new ParticlesBoxRenderer(); test.ObserveUpdate(() => renderer.RenderEffect(effect)); }