public void ParticleFactoryCreateTestNotExisting()
        {
            EntityCreateArgs args = new EntityCreateArgs("random");

            SceneManager.Instance.LoadScene <MockScene>();
            ParticleFactory factory = new ParticleFactory();

            Assert.IsNull(factory.Create(args), "Sukurtas objektas kai turėjo gražinti null");
        }
Exemplo n.º 2
0
        public override Entity Create(EntityCreateArgs args)
        {
            ParticleEmitter particleEmitter = null;
            string          path            = "../../res/particles/";
            Image           image;

            switch (args.type.ToLower())
            {
            case "explosion":
                image = Image.FromFile(path + "explosion_spritesheet.png");
                AnimatedSprite explosionSprite = new AnimatedSprite(image, new Vector2(), new Vector2(100, 100), 4, 4);
                FrameAnimation animation       = new FrameAnimation(1f, false, 0, 12);
                particleEmitter = new AnimatedParticleEmitter(16, explosionSprite, animation,
                                                              new ParticleProperties()
                {
                    startSize     = new Range(48, 84),
                    startAngle    = new Range(225f, 315f),
                    startLifetime = new Range(0.75f, 1.5f),
                    startSpeed    = new Range(100f, 400f),
                    sizeGrow      = -32,
                },
                                                              true, ParticleEmitMode.OneShot);
                break;

            case "shield":
                image = Image.FromFile(path + "shield_particle.png");
                Sprite shieldSprite = new Sprite(image, new Vector2(), new Vector2(100, 100));
                particleEmitter = new ParticleEmitter(5, shieldSprite, new ParticleProperties()
                {
                    startSize     = 128f,
                    sizeGrow      = -128f,
                    spawnRate     = 0.4f,
                    startLifetime = 1f
                });
                break;

            case "health":
                image = Image.FromFile(path + "health_particle.png");
                Sprite healthSprite = new Sprite(image, new Vector2(), new Vector2(100, 100));
                particleEmitter = new ParticleEmitter(8, healthSprite, new ParticleProperties()
                {
                    startSpeed    = 700f,
                    speedDamping  = 0.7f,
                    startOffset   = new Vector2(20f, 0f),
                    startSize     = 64f,
                    sizeGrow      = -64f,
                    spawnRate     = 0.2f,
                    startAngle    = 270f,
                    startLifetime = 0.5f
                });
                break;

            default:
                return(null);
            }
            return(SceneManager.Instance.CurrentScene.CreateEntity(particleEmitter));
        }
        public void ParticleFactoryCreateTest()
        {
            EntityCreateArgs args = new EntityCreateArgs("explosion");

            SceneManager.Instance.LoadScene <MockScene>();
            ParticleFactory factory = new ParticleFactory();
            Entity          element = factory.Create(args);
            bool            deleted = SceneManager.Instance.CurrentScene.DestroyEntity(element);

            Assert.IsTrue(deleted, "Scenoje nerastas objektas");
        }
Exemplo n.º 4
0
        public override Entity Create(EntityCreateArgs args)
        {
            Projectile projectile = null;

            switch (args.type.ToLower())
            {
            case "grenade":
                projectile = new Grenade(Image.FromFile("../../res/projectile_grenade.png"), new Vector2(0, 0), 50, 200, 50, 2f);
                break;
            }
            return(SceneManager.Instance.CurrentScene.CreateEntity(projectile));
        }
Exemplo n.º 5
0
        public override Entity Create(EntityCreateArgs args)
        {
            //System.Console.WriteLine($"FACTORY ParticleFactory: Create()");
            ParticleEmitter particleEmitter = null;
            string          path            = "../../res/particles/";
            Image           image;

            string particleType = args.type.ToLower();

            if (cache.ContainsKey(particleType))
            {
                return(cache[particleType]);
            }
            else
            {
                switch (args.type.ToLower())
                {
                case "explosion":
                    System.Console.WriteLine($"\tCreating Explosion");
                    image = Image.FromFile(path + "explosion_spritesheet.png");
                    AnimatedSprite explosionSprite = new AnimatedSprite(image, new Vector2(), new Vector2(100, 100), 4, 4);
                    FrameAnimation animation       = new FrameAnimation(1f, false, 0, 12);
                    particleEmitter = new AnimatedParticleEmitter(16, explosionSprite, animation,
                                                                  new ParticleProperties()
                    {
                        startSize     = new Range(48, 84),
                        startAngle    = new Range(225f, 315f),
                        startLifetime = new Range(0.75f, 1.5f),
                        startSpeed    = new Range(100f, 400f),
                        sizeGrow      = -32,
                    },
                                                                  new ParticlesOneShotMode(),
                                                                  true);
                    break;

                case "shield":
                    System.Console.WriteLine($"\tCreating Shield");
                    image = Image.FromFile(path + "shield_particle.png");
                    Sprite shieldSprite = new Sprite(image, new Vector2(), new Vector2(100, 100));
                    particleEmitter = new ParticleEmitter(5, shieldSprite, new ParticleProperties()
                    {
                        startSize     = 128f,
                        sizeGrow      = -128f,
                        spawnRate     = 0.4f,
                        startLifetime = 1f
                    }, new ParticlesContinuousMode());
                    break;

                case "health":
                    System.Console.WriteLine($"\tCreating Health");
                    image = Image.FromFile(path + "health_particle.png");
                    Sprite healthSprite = new Sprite(image, new Vector2(), new Vector2(100, 100));
                    particleEmitter = new ParticleEmitter(8, healthSprite, new ParticleProperties()
                    {
                        startSpeed    = 700f,
                        speedDamping  = 0.7f,
                        startOffset   = new Vector2(20f, 0f),
                        startSize     = 64f,
                        sizeGrow      = -64f,
                        spawnRate     = 0.2f,
                        startAngle    = 270f,
                        startLifetime = 0.5f
                    }, new ParticlesContinuousMode());
                    break;

                default:
                    return(null);
                }
                cache.Add(particleType, particleEmitter);
            }

            return(SceneManager.Instance.CurrentScene.CreateEntity(particleEmitter));
        }
Exemplo n.º 6
0
 public abstract Entity Create(EntityCreateArgs args);