コード例 #1
0
        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;
            });
        }
コード例 #2
0
        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;
            });
        }
コード例 #3
0
        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));
        }