Beispiel #1
0
        public Explosion(float x, float y) : base(x, y)
        {
            Emitter = AddComponent(new Emitter(Library.GetTexture("explosion.png"), 60, 60));

            for (int i = 0; i < 4; i++)
            {
                var name = i.ToString();
                Emitter.NewType(name, FP.Frames(i));
                Emitter.SetAlpha(name, 1, 0);
                Emitter.SetMotion(name, 0, 50, 0.4f, 360, 15, 0.15f, Ease.CubeOut);
            }

            Width = Height = (int)(Radius * 1.25f);
            CenterOrigin();

            var t = 4;

            while (t-- > 0)
            {
                var name = t.ToString();
                for (int j = 0; j < Radius; j++)
                {
                    var pos = FP.Random.InCircle(Radius);
                    Emitter.Emit(name, pos.X, pos.Y);
                }
            }
        }
Beispiel #2
0
        private Emitter InitDoubleJump()
        {
            var emitter = new Emitter(Library.GetTexture("dust.png"), 24, 24);

            emitter.NewType("dust", FP.Frames(0, 1));
            emitter.SetAlpha("dust", 0.9f, 0, Ease.QuintOut);
            emitter.SetMotion("dust", 80, 3, 0.5f, 10, 3, 0.2f, Ease.QuintOut);
            emitter.SetScaling("dust", 1.8f, 1.5f, Ease.QuintOut);

            return(emitter);
        }
Beispiel #3
0
        private Emitter InitBulletTrail()
        {
            var emitter = new Emitter(Library.GetTexture("bullet_sparkle.png"), 20, 20);

            var name = "spark";

            emitter.NewType(name, FP.Frames(0, 1, 2, 3, 4));
            emitter.SetAlpha(name, 1, 0);
            emitter.SetMotion(name, 0, 0, 0.5f, 0, 0, 0.25f, Ease.CircOut);

            return(emitter);
        }
Beispiel #4
0
        public Shuriken(float velX, float velY)
            : base(velX, velY)
        {
            spritemap = makeSpritemap(null);
            spritemap.Add("Ninja", FP.Frames(18, 19), 20, true);

            AddGraphic(spritemap);

            spritemap.Play("Ninja");

            _onCollide = onCollide;

            physics.maxXVelocity = 30;
        }
Beispiel #5
0
        public Bubble(float velX, float velY)
            : base(velX, velY)
        {
            spritemap = makeSpritemap(onAnimationEnd);
            spritemap.Add("Bubble", FP.Frames(1, 2, 3), 10, false);
            spritemap.Add("BubbleLoop", FP.Frames(4, 5, 6), 5, true);
            spritemap.Add("BubblePop", FP.Frames(7), 10, false);

            AddGraphic(spritemap);

            spritemap.Play("Bubble");
            SetHitboxTo(spritemap);
            _onCollide = onCollide;
        }
Beispiel #6
0
        private Emitter InitSpeed()
        {
            var emitter = new Emitter(Library.GetTexture("speed_particle.png"), 68, 30);

            emitter.NewType("l", FP.Frames(0));
            emitter.SetMotion("l", 0, 50, 0.5f, 0, 15, 1, Ease.QuintOut);
            emitter.SetAlpha("l", 0.5f, 0, Ease.QuintOut);

            emitter.NewType("r", FP.Frames(1));
            emitter.SetMotion("r", 0, 50, 0.5f, 0, 15, 1, Ease.QuintOut);
            emitter.SetAlpha("r", 0.5f, 0, Ease.QuintOut);

            return(emitter);
        }
Beispiel #7
0
        public override void Load(System.Xml.XmlNode node)
        {
            base.Load(node);

            cloak = new Spritemap(Library.GetTexture("assets/ArmsBosslowres.png"), 674 / 2, 349 / 2, onAnimationEnd);
            cloak.Add("Idle", FP.Frames(0), 1, true);
            cloak.Add("Reveal", FP.MakeFrames(0, 11), 5, false);

            AddGraphic(cloak);

            cloak.Scale   = 4;
            cloak.OriginX = 673 / 8 - 15;
            cloak.OriginY = 349 / 4;

            cloak.Play("Idle");
        }
Beispiel #8
0
        public Fireball(float velX, float velY)
            : base(velX, velY)
        {
            spritemap = makeSpritemap(null);
            spritemap.Add("Fireball", FP.Frames(13, 14), 20, true);

            AddGraphic(spritemap);

            spritemap.Play("Fireball");

            _onCollide = onCollide;
            physics.Colliders.Add("player");
            physics.Colliders.Remove("enemy");

            physics.maxXVelocity = 30;
        }
Beispiel #9
0
        /// <summary>
        /// Creates a new Particle type for this Emitter.
        /// </summary>
        /// <param name="name">Name of the particle type.</param>
        /// <param name="frames">Array of frame indices for the particles to animate.</param>
        /// <returns>A new ParticleType object.</returns>
        public ParticleType NewType(string name, int[] frames = null)
        {
            if (frames == null)
            {
                frames = FP.Frames(0);
            }
            if (_types.ContainsKey(name))
            {
                throw new Exception("Cannot add multiple particle types of the same name");
            }

            var type = new ParticleType(name, frames, _source, (int)_frameWidth, (int)_frameHeight);

            _types.Add(name, type);

            return(type);
        }
Beispiel #10
0
        public BossArms()
        {
            arms = new Spritemap(Library.GetTexture("assets/Arms.png"), 256, 256, null);
            arms.Add("Idle", FP.Frames(0), 1, true);
            arms.Add("Attack", FP.Frames(0, 1), 4, false);

            arms.OriginX = 128;
            arms.OriginY = 128;

            AddGraphic(arms);

            SetHitbox(256, 256, 128, 128);

            Type = "enemy";

            arms.Play("Idle");
        }
Beispiel #11
0
        private Emitter InitGroundSmash()
        {
            var emitter = new Emitter(Library.GetTexture("groundsmash_particle.png"), 3, 3);

            emitter.Relative = false;

            for (int i = 0; i < 4; i++)
            {
                var name = i.ToString();
                emitter.NewType(name, FP.Frames(i));
                emitter.SetAlpha(name, 0, 1f);
                emitter.SetMotion(name, -90, 100, 0.5f, 10, 10, 0.1f, Ease.SineOut);
                emitter.SetGravity(name, 5, 2);
            }

            return(emitter);
        }
Beispiel #12
0
        public override void Load(System.Xml.XmlNode node)
        {
            base.Load(node);
            //Graphic = Image.CreateRect(64, 64, FP.Color(0x66FF33));

            //make the enemy hittable and all that jazz
            Type    = "enemy";
            physics = new PhysicsBody();
            physics.Colliders.Add("wall");
            physics.Colliders.Add("platform");
            physics.Colliders.Add("player");
            AddLogic(physics);

            //hitboxs and such
            spritemap = new Spritemap(Library.GetTexture("assets/RoadHeadlowres.png"), 167 / 2, 257 / 2, onAnimationEnd);
            spritemap.Add("Idle", FP.Frames(0), 5, true);
            spritemap.Add("Move", FP.MakeFrames(0, 2), 5, true);
            spritemap.Add("ChargeAttack", FP.MakeFrames(3, 12), 8, false);
            spritemap.Add("Attack", FP.MakeFrames(13, 22), 8, false);
            spritemap.Add("Recover", FP.MakeFrames(23, 27), 5, false);
            spritemap.Add("Injured", FP.MakeFrames(27, 23), 5, true);
            spritemap.Play("Move");

            spritemap.OriginX = spritemap.Width / 2;
            spritemap.OriginY = spritemap.Height;
            AddGraphic(spritemap);

            SetOrigin(spritemap.Width / 2, 257 / 2);
            SetHitbox(spritemap.Width, spritemap.Height, spritemap.Width / 2, spritemap.Height);

            foreach (System.Xml.XmlNode n in node)
            {
                FP.Log(int.Parse(n.Attributes["x"].Value) + " " + float.Parse(n.Attributes["y"].Value));
                positionNodes.Add(new Vector2i(int.Parse(n.Attributes["x"].Value), int.Parse(n.Attributes["y"].Value)));
            }


            if (positionNodes.Count > 0)
            {
                nextNode = positionNodes[0];
                MoveToNextPos();
            }
        }
Beispiel #13
0
        public RazorBlade(float size)
        {
            blade       = new Image(Library.GetTexture("razor.png"));
            blade.Scale = size;
            blade.CenterOO();
            SetHitboxTo(blade);
            CenterOrigin();

            emitter          = new Emitter(Library.GetTexture("blood.png"), 15, 15);
            emitter.Relative = false;

            for (int i = 0; i < 4; ++i)
            {
                var name = i.ToString();
                emitter.NewType(name, FP.Frames(i));

                emitter.SetGravity(name, 10, 10);
                emitter.SetMotion(name, 0, 50, 0.5f, 360, 15, 1, Ease.QuintOut);
                emitter.SetAlpha(name, 1, 0, Ease.QuintOut);
            }

            AddComponent(blade);
            AddComponent(emitter);
        }