コード例 #1
0
 private void createNumeredFrames()
 {
     for (var i = 0; i < 9; i++)
     {
         sprite.CreateAnimation(i.ToString(), 5f);
         sprite.AddFrames(i.ToString(), new List <Rectangle>
         {
             new Rectangle(i * 8, 0, 8, 8)
         });
     }
 }
コード例 #2
0
 protected virtual void createAnimations()
 {
     sprite.CreateAnimation(Animations.Stand);
     sprite.AddFrames(Animations.Stand, new List <Rectangle>()
     {
         new Rectangle(0, 0, 64, 64)
     }, new int[] { 0 }, new int[] { -12 });
 }
コード例 #3
0
        //----------------------//------------------------//

        public override void initialize()
        {
            // Init sprite
            var texture = entity.scene.content.Load <Texture2D>(Content.Characters.hostage);

            sprite = entity.addComponent(new AnimatedSprite(texture, "stand"));
            sprite.CreateAnimation("stand", 0.15f);
            sprite.AddFrames("stand", new List <Rectangle>
            {
                new Rectangle(0, 0, 100, 100),
                new Rectangle(100, 0, 100, 100),
                new Rectangle(200, 0, 100, 100),
                new Rectangle(300, 0, 100, 100),
                new Rectangle(400, 0, 100, 100),
                new Rectangle(500, 0, 100, 100),
            }, new[] { 0, 0, 0, 0, 0, 0 }, new[] { 9, 9, 9, 9, 9, 9 });

            sprite.CreateAnimation("thanks", 0.1f, false);
            sprite.AddFrames("thanks", new List <Rectangle>
            {
                new Rectangle(300, 0, 100, 100),
                new Rectangle(400, 0, 100, 100),
                new Rectangle(500, 0, 100, 100),
                new Rectangle(300, 0, 100, 100),
                new Rectangle(400, 0, 100, 100),
                new Rectangle(500, 0, 100, 100),

                new Rectangle(0, 100, 100, 100),
                new Rectangle(100, 100, 100, 100),
                new Rectangle(200, 100, 100, 100),
                new Rectangle(300, 100, 100, 100),
                new Rectangle(400, 100, 100, 100),
                new Rectangle(500, 100, 100, 100),

                new Rectangle(0, 200, 100, 100),
                new Rectangle(100, 200, 100, 100),
                new Rectangle(200, 200, 100, 100),
                new Rectangle(300, 200, 100, 100),
                new Rectangle(400, 200, 100, 100),
            }, Enumerable.Repeat(0, 17).ToArray(), Enumerable.Repeat(9, 17).ToArray());

            // collisor init
            entity.addComponent(new BoxCollider(-12, -2, 32, 34));
        }
コード例 #4
0
        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Misc.reactor);

            sprite = entity.addComponent(new AnimatedSprite(texture, "off")
            {
                renderLayer = SceneMap.MISC_RENDER_LAYER
            });
            sprite.CreateAnimation("off", 0.1f, false);
            sprite.AddFrames("off", new List <Rectangle>
            {
                new Rectangle(0, 0, 32, 32),
            });

            sprite.CreateAnimation("activated", 0.3f);
            sprite.AddFrames("activated", new List <Rectangle>
            {
                new Rectangle(32, 0, 32, 32),
                new Rectangle(64, 0, 32, 32),
                new Rectangle(96, 0, 32, 32),
            });
        }
コード例 #5
0
        private void createLaserSprite()
        {
            var texture = entity.entity.scene.content.Load <Texture2D>(Content.Misc.bigLaser);
            var laser   = entity.entity.scene.createEntity("big-laser-sprite");

            _bigLaserSprite = laser.addComponent(new AnimatedSprite(texture, "default"));
            _bigLaserSprite.CreateAnimation("default", 0.08f, false);
            _bigLaserSprite.AddFrames("default", new List <Rectangle>()
            {
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 0, 101, 8),
                new Rectangle(0, 8, 101, 8),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
                new Rectangle(0, 0, 0, 0),
            });
            laser.setScale(new Vector2(2.5f, 1));
            laser.position = entity.entity.position + new Vector2(-143, 24);
        }
コード例 #6
0
        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Misc.missile);

            sprite = entity.addComponent(new AnimatedSprite(texture, "default"));
            sprite.CreateAnimation("default", 0.2f);
            sprite.AddFrames("default", new List <Rectangle>
            {
                new Rectangle(0, 0, 32, 32),
                new Rectangle(32, 0, 32, 32),
            });

            entity.addComponent(new BoxCollider(-3, -3, 6, 6));

            _speed = -200f;

            entity.transform.rotationDegrees = _rotation;
        }
コード例 #7
0
        public override void initialize()
        {
            var file    = _type == 1 ? Content.Misc.bullet : Content.Misc.cannon;
            var texture = entity.scene.content.Load <Texture2D>(file);

            sprite = entity.addComponent(new AnimatedSprite(texture, "default"));
            sprite.CreateAnimation("default", 0.2f);
            addFramesBasedOnType();

            entity.addComponent(new BoxCollider(-3, -3, 6, 6));

            _speed = _type == 1 ? 100f : 300f;

            entity.transform.rotationDegrees = 19;
            if (_direction < 0)
            {
                sprite.spriteEffects             = SpriteEffects.FlipHorizontally;
                entity.transform.rotationDegrees = -19;
            }
        }
コード例 #8
0
        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Misc.arrow);

            sprite = entity.addComponent(new AnimatedSprite(texture, "default"));
            sprite.CreateAnimation("default", 0.2f);
            sprite.AddFrames("default", new List <Rectangle>
            {
                new Rectangle(0, 0, 12, 5)
            });

            var collider = entity.addComponent(new BoxCollider(-6, -2, 12, 5));

            Flags.setFlagExclusive(ref collider.physicsLayer, SceneMap.PROJECTILES_LAYER);

            if (_direction < 0)
            {
                sprite.spriteEffects = SpriteEffects.FlipHorizontally;
            }

            sprite.entity.setRotation(_rotation);
            sprite.renderLayer = SceneMap.MISC_RENDER_LAYER;
        }
コード例 #9
0
        //----------------------//------------------------//

        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Characters.player);

            _animationMap = new Dictionary <Animations, string>
            {
                { Animations.Stand, "stand" },
                { Animations.Walking, "walking" },
                { Animations.JumpPreparation, "jumpPreparation" },
                { Animations.JumpUpwards, "jumpUpwards" },
                { Animations.JumpFalling, "jumpFalling" },
                { Animations.JumpLanding, "jumpLanding" },
                { Animations.AttackOne, "attack1" },
                { Animations.AttackTwo, "attack2" },
                { Animations.SlidingWall, "slidingWall" },
                { Animations.Rolling, "rolling" },
                { Animations.Hit, "jumpLanding" },
                { Animations.Dying, "dying" },
            };

            var am = _animationMap;

            sprite = entity.addComponent(new AnimatedSprite(texture, am[Animations.Stand]));
            sprite.CreateAnimation(am[Animations.Stand], 0.1f);
            sprite.AddFrames(am[Animations.Stand], new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
                new Rectangle(64, 0, 64, 64),
                new Rectangle(128, 0, 64, 64),
                new Rectangle(192, 0, 64, 64),
                new Rectangle(256, 0, 64, 64),
                new Rectangle(320, 0, 64, 64),
            }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9 });

            sprite.CreateAnimation(am[Animations.Walking], 0.1f);
            sprite.AddFrames(am[Animations.Walking], new List <Rectangle>()
            {
                new Rectangle(0, 64, 64, 64),
                new Rectangle(64, 64, 64, 64),
                new Rectangle(128, 64, 64, 64),
                new Rectangle(192, 64, 64, 64),
                new Rectangle(256, 64, 64, 64),
                new Rectangle(320, 64, 64, 64),
            }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9 });

            sprite.CreateAnimation(am[Animations.JumpPreparation]);
            sprite.AddFrames(am[Animations.JumpPreparation], new List <Rectangle>()
            {
                new Rectangle(0, 128, 64, 64),
            }, new int[] { 0 }, new int[] { -9 });

            sprite.CreateAnimation(am[Animations.JumpUpwards]);
            sprite.AddFrames(am[Animations.JumpUpwards], new List <Rectangle>()
            {
                new Rectangle(0, 128, 64, 64),
            }, new int[] { 0 }, new int[] { -9 });

            sprite.CreateAnimation(am[Animations.JumpFalling]);
            sprite.AddFrames(am[Animations.JumpFalling], new List <Rectangle>()
            {
                new Rectangle(0, 128, 64, 64),
            }, new int[] { 0 }, new int[] { -9 });

            sprite.CreateAnimation(am[Animations.JumpLanding]);
            sprite.AddFrames(am[Animations.JumpLanding], new List <Rectangle>()
            {
                new Rectangle(0, 128, 64, 64),
            }, new int[] { 0 }, new int[] { -9 });

            sprite.CreateAnimation(am[Animations.AttackOne], 0.08f, false);
            sprite.AddFrames(am[Animations.AttackOne], new List <Rectangle>
            {
                new Rectangle(128, 128, 64, 64),
                new Rectangle(192, 128, 64, 64),
                new Rectangle(256, 128, 64, 64),
                new Rectangle(320, 128, 64, 64),
            }, new [] { 0, 0, 0, 0 }, new[] { -9, -9, -9, -9 });
            sprite.AddAttackCollider(am[Animations.AttackOne], new List <List <Rectangle> >
            {
                new List <Rectangle>()
                {
                },
                new List <Rectangle>()
                {
                    new Rectangle(0, -10, 34, 29)
                },
                new List <Rectangle>()
                {
                    new Rectangle(4, -9, 29, 25)
                },
                new List <Rectangle>()
                {
                    new Rectangle(5, -10, 16, 11)
                },
            });
            sprite.AddFramesToAttack(am[Animations.AttackOne], 1, 2, 3);

            sprite.CreateAnimation(am[Animations.AttackTwo], 0.08f, false);
            sprite.AddFrames(am[Animations.AttackTwo], new List <Rectangle>
            {
                new Rectangle(0, 192, 64, 64),
                new Rectangle(64, 192, 64, 64),
                new Rectangle(128, 192, 64, 64),
                new Rectangle(192, 192, 64, 64),
            }, new int[] { 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9 });
            sprite.AddAttackCollider(am[Animations.AttackTwo], new List <List <Rectangle> >
            {
                new List <Rectangle>()
                {
                    new Rectangle(5, -10, 16, 11)
                },
                new List <Rectangle>()
                {
                    new Rectangle(-20, -8, 55, 24)
                },
                new List <Rectangle>()
                {
                    new Rectangle(-22, -14, 45, 28)
                },
                new List <Rectangle>()
                {
                    new Rectangle(-22, -14, 22, 20)
                },
            });
            sprite.AddFramesToAttack(am[Animations.AttackTwo], 0, 1, 2, 3);

            sprite.CreateAnimation(am[Animations.SlidingWall], 0.1f, false);
            sprite.AddFrames(am[Animations.SlidingWall], new List <Rectangle>()
            {
                new Rectangle(320, 192, 64, 64),
            }, new int[] { 0 }, new int[] { -9 });

            sprite.CreateAnimation(am[Animations.Rolling], 0.05f, false);
            sprite.AddFrames(am[Animations.Rolling], new List <Rectangle>()
            {
                new Rectangle(256, 256, 64, 64),
                new Rectangle(320, 256, 64, 64),
                new Rectangle(0, 320, 64, 64),
                new Rectangle(64, 320, 64, 64),
                new Rectangle(128, 320, 64, 64),
                new Rectangle(192, 320, 64, 64),
                new Rectangle(256, 320, 64, 64),
            }, new int[] { 0, 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9, -9 });

            sprite.CreateAnimation(am[Animations.Hit], 0.1f, false);
            sprite.AddFrames(am[Animations.Hit], new List <Rectangle>()
            {
                new Rectangle(0, 256, 64, 64),
                new Rectangle(64, 256, 64, 64),
                new Rectangle(128, 256, 64, 64),
            }, new int[] { 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9 });

            sprite.CreateAnimation(am[Animations.Dying], 0.2f, false);
            sprite.AddFrames(am[Animations.Dying], new List <Rectangle>()
            {
                new Rectangle(0, 384, 64, 64),
                new Rectangle(64, 384, 64, 64),
                new Rectangle(128, 384, 64, 64),
                new Rectangle(192, 384, 64, 64),
                new Rectangle(256, 384, 64, 64),
                new Rectangle(320, 384, 64, 64),
                new Rectangle(0, 448, 64, 64),
                new Rectangle(64, 448, 64, 64),
                new Rectangle(128, 448, 64, 64),
                new Rectangle(192, 448, 64, 64),
                new Rectangle(256, 448, 64, 64),
                new Rectangle(256, 448, 64, 64),
                new Rectangle(256, 448, 64, 64),
                new Rectangle(256, 448, 64, 64),
                new Rectangle(256, 448, 64, 64),
                new Rectangle(256, 448, 64, 64),
            }, new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, new int[] { -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9 });

            // Create the core sprite
            var coreTexture = entity.scene.content.Load <Texture2D>(Content.Characters.core);

            coreSprite = entity.addComponent(new AnimatedSprite(coreTexture, am[Animations.Stand]));
            coreSprite.CloneAnimationsFrom(sprite, coreTexture);
            coreSprite.setEnabled(false);

            // init fsm
            _fsm = new FiniteStateMachine <PlayerState, PlayerComponent>(this, new StandState());

            // init effects
            _wallSlideEffectTexture = entity.scene.content.Load <Texture2D>(Content.Effects.wallSlideEffect);
            _jumpEffectTexture      = entity.scene.content.Load <Texture2D>(Content.Effects.jumpEffect);
            _rollEffectTexture      = entity.scene.content.Load <Texture2D>(Content.Effects.rollEffect);

            // Set player manager
            playerManager = Core.getGlobalManager <PlayerManager>();
            //playerManager.HoldingCore = true;
        }
コード例 #10
0
        //----------------------//------------------------//

        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Characters.player);

            _animationMap = new Dictionary <Animations, string>
            {
                { Animations.Stand, "stand" },
                { Animations.Walking, "walking" },
                { Animations.Jumping, "jumping" },

                { Animations.Fist1, "fist1" },
                { Animations.Fist2, "fist2" },
                { Animations.Fist3, "fist3" },

                { Animations.Sword1, "sword1" },
                { Animations.Sword2, "sword2" },
                { Animations.Sword3, "sword3" },

                { Animations.Quarterstaff1, "quarterstaff1" },
                { Animations.Quarterstaff2, "quarterstaff2" },
                { Animations.Quarterstaff3, "quarterstaff3" },

                { Animations.Pistol1, "pistol1" },
                { Animations.Pistol2, "pistol2" },
                { Animations.Pistol3, "pistol3" },

                { Animations.Hit, "hit" },
                { Animations.Dying, "dying" },
            };

            LinkableFrames = new Dictionary <Animations, int[]>();
            var am = _animationMap;

            sprite = entity.addComponent(new AnimatedSprite(texture, am[Animations.Stand]));

            // == GENERAL ANIMATIONS ==

            #region General Animations

            sprite.CreateAnimation(am[Animations.Stand], 0.1f);
            sprite.AddFrames(am[Animations.Stand], new List <Rectangle>()
            {
                new Rectangle(0, 0, 100, 100),
                new Rectangle(100, 0, 100, 100),
                new Rectangle(200, 0, 100, 100),
                new Rectangle(300, 0, 100, 100),
                new Rectangle(400, 0, 100, 100),
                new Rectangle(500, 0, 100, 100),
                new Rectangle(600, 0, 100, 100),
                new Rectangle(700, 0, 100, 100),
            });

            sprite.CreateAnimation(am[Animations.Walking], 0.08f);
            sprite.AddFrames(am[Animations.Walking], new List <Rectangle>()
            {
                new Rectangle(700, 800, 100, 100),
                new Rectangle(0, 900, 100, 100),
                new Rectangle(100, 900, 100, 100),
                new Rectangle(200, 900, 100, 100),
                new Rectangle(300, 900, 100, 100),
                new Rectangle(400, 900, 100, 100),
                new Rectangle(500, 900, 100, 100),
                new Rectangle(600, 900, 100, 100),
            });

            sprite.CreateAnimation(am[Animations.Jumping], 0.1f);
            sprite.AddFrames(am[Animations.Jumping], new List <Rectangle>()
            {
                new Rectangle(300, 700, 100, 100),
            });

            sprite.CreateAnimation(am[Animations.Hit], 0.09f, false);
            sprite.AddFrames(am[Animations.Hit], new List <Rectangle>()
            {
                new Rectangle(400, 700, 100, 100),
                new Rectangle(500, 700, 100, 100),
            });

            sprite.CreateAnimation(am[Animations.Dying], 0.09f, false);
            sprite.AddFrames(am[Animations.Dying], new List <Rectangle>()
            {
                new Rectangle(700, 700, 100, 100),
                new Rectangle(0, 800, 100, 100),
                new Rectangle(100, 800, 100, 100),
                new Rectangle(200, 800, 100, 100),
                new Rectangle(300, 800, 100, 100),
                new Rectangle(400, 800, 100, 100),
                new Rectangle(500, 800, 100, 100),
                new Rectangle(600, 800, 100, 100),
            });

            #endregion

            // == FIRST ATTACKS ==

            #region Fist Animations

            sprite.CreateAnimation(am[Animations.Fist1], 0.09f, false);
            sprite.AddFrames(am[Animations.Fist1], new List <Rectangle>()
            {
                new Rectangle(100, 100, 100, 100),
                new Rectangle(200, 100, 100, 100),
                new Rectangle(300, 100, 100, 100),
                new Rectangle(400, 100, 100, 100),
                new Rectangle(500, 100, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Fist1], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -10, 34, 18)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Fist1], 1);
            LinkableFrames[Animations.Fist1] = new[] { 2, 3 };

            sprite.CreateAnimation(am[Animations.Fist2], 0.09f, false);
            sprite.AddFrames(am[Animations.Fist2], new List <Rectangle>()
            {
                new Rectangle(700, 100, 100, 100),
                new Rectangle(0, 200, 100, 100),
                new Rectangle(100, 200, 100, 100),
                new Rectangle(200, 200, 100, 100),
                new Rectangle(300, 200, 100, 100),
                new Rectangle(400, 200, 100, 100),
                new Rectangle(500, 200, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Fist2], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(-0, -14, 26, 18)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Fist2], 2);
            LinkableFrames[Animations.Fist2] = new[] { 3, 4 };

            sprite.CreateAnimation(am[Animations.Fist3], 0.09f, false);
            sprite.AddFrames(am[Animations.Fist3], new List <Rectangle>()
            {
                new Rectangle(700, 200, 100, 100),
                new Rectangle(0, 300, 100, 100),
                new Rectangle(100, 300, 100, 100),
                new Rectangle(200, 300, 100, 100),
                new Rectangle(300, 300, 100, 100),
                new Rectangle(400, 300, 100, 100),
                new Rectangle(500, 300, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Fist3], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(-2, -10, 24, 29)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Fist3], 2);
            LinkableFrames[Animations.Fist3] = new[] { 3, 4 };

            #endregion

            // == SWORD ATTACKS ==

            #region Sword Animations

            sprite.CreateAnimation(am[Animations.Sword1], 0.09f, false);
            sprite.AddFrames(am[Animations.Sword1], new List <Rectangle>()
            {
                new Rectangle(700, 300, 100, 100),
                new Rectangle(0, 400, 100, 100),
                new Rectangle(100, 400, 100, 100),
                new Rectangle(200, 400, 100, 100),
                new Rectangle(300, 400, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Sword1], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -10, 44, 29)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Sword1], 1);
            LinkableFrames[Animations.Sword1] = new[] { 2, 3 };

            sprite.CreateAnimation(am[Animations.Sword2], 0.09f, false);
            sprite.AddFrames(am[Animations.Sword2], new List <Rectangle>()
            {
                new Rectangle(500, 400, 100, 100),
                new Rectangle(600, 400, 100, 100),
                new Rectangle(700, 400, 100, 100),
                new Rectangle(0, 500, 100, 100),
                new Rectangle(100, 500, 100, 100),
                new Rectangle(200, 500, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Sword2], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -12, 48, 33), new Rectangle(-4, -24, 42, 12)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Sword2], 1);
            LinkableFrames[Animations.Sword2] = new[] { 2, 3 };

            sprite.CreateAnimation(am[Animations.Sword3], 0.09f, false);
            sprite.AddFrames(am[Animations.Sword3], new List <Rectangle>()
            {
                new Rectangle(400, 500, 100, 100),
                new Rectangle(500, 500, 100, 100),
                new Rectangle(600, 500, 100, 100),
                new Rectangle(700, 500, 100, 100),
                new Rectangle(0, 600, 100, 100),
                new Rectangle(100, 600, 100, 100),
                new Rectangle(200, 600, 100, 100),
                new Rectangle(300, 600, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Sword3], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle>(),
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(6, -46, 34, 68)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Sword3], 3);
            LinkableFrames[Animations.Sword3] = new[] { 4, 5 };

            #endregion

            // == QUARTERSTAFF ATTACKS ==

            #region Quarterstaff Animations

            sprite.CreateAnimation(am[Animations.Quarterstaff1], 0.09f, false);
            sprite.AddFrames(am[Animations.Quarterstaff1], new List <Rectangle>()
            {
                new Rectangle(0, 1000, 100, 100),
                new Rectangle(200, 1000, 100, 100),
                new Rectangle(300, 1000, 100, 100),
                new Rectangle(400, 1000, 100, 100),
                new Rectangle(500, 1000, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Quarterstaff1], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(1, -23, 46, 48)
                },
                new List <Rectangle> {
                    new Rectangle(1, -23, 46, 48)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Quarterstaff1], 1, 2);
            LinkableFrames[Animations.Quarterstaff1] = new[] { 2, 3 };

            sprite.CreateAnimation(am[Animations.Quarterstaff2], 0.1f, false);
            sprite.AddFrames(am[Animations.Quarterstaff2], new List <Rectangle>()
            {
                new Rectangle(0, 1000, 100, 100),
                new Rectangle(200, 1000, 100, 100),
                new Rectangle(300, 1000, 100, 100),
                new Rectangle(400, 1000, 100, 100),
                new Rectangle(500, 1000, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Quarterstaff2], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(1, -23, 46, 48)
                },
                new List <Rectangle> {
                    new Rectangle(1, -23, 46, 48)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Quarterstaff2], 1, 2);
            LinkableFrames[Animations.Quarterstaff2] = new[] { 2, 3 };

            sprite.CreateAnimation(am[Animations.Quarterstaff3], 0.1f, false);
            sprite.AddFrames(am[Animations.Quarterstaff3], new List <Rectangle>()
            {
                new Rectangle(700, 1000, 100, 100),
                new Rectangle(0, 1100, 100, 100),
                new Rectangle(100, 1100, 100, 100),
                new Rectangle(200, 1100, 100, 100),
                new Rectangle(300, 1100, 100, 100),
                new Rectangle(400, 1100, 100, 100),
                new Rectangle(500, 1100, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Quarterstaff3], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle>(),
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -10, 54, 18)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Quarterstaff3], 3);
            LinkableFrames[Animations.Quarterstaff3] = new[] { 3, 4 };

            #endregion

            // == PISTOL ATTACKS ==

            #region Pistol Animations

            sprite.CreateAnimation(am[Animations.Pistol1], 0.07f, false);
            sprite.AddFrames(am[Animations.Pistol1], new List <Rectangle>()
            {
                new Rectangle(500, 600, 100, 100),
                new Rectangle(600, 600, 100, 100),
                new Rectangle(700, 600, 100, 100),
                new Rectangle(0, 700, 100, 100),
                new Rectangle(100, 700, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Pistol1], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -10, 148, 29)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Pistol1], 1);
            LinkableFrames[Animations.Pistol1] = new[] { 3, 4 };

            sprite.CreateAnimation(am[Animations.Pistol2], 0.07f, false);
            sprite.AddFrames(am[Animations.Pistol2], new List <Rectangle>()
            {
                new Rectangle(500, 600, 100, 100),
                new Rectangle(600, 600, 100, 100),
                new Rectangle(700, 600, 100, 100),
                new Rectangle(0, 700, 100, 100),
                new Rectangle(100, 700, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Pistol2], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -14, 148, 29)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Pistol2], 1);
            LinkableFrames[Animations.Pistol2] = new[] { 3, 4 };

            sprite.CreateAnimation(am[Animations.Pistol3], 0.07f, false);
            sprite.AddFrames(am[Animations.Pistol3], new List <Rectangle>()
            {
                new Rectangle(500, 600, 100, 100),
                new Rectangle(600, 600, 100, 100),
                new Rectangle(700, 600, 100, 100),
                new Rectangle(0, 700, 100, 100),
                new Rectangle(100, 700, 100, 100),
            });
            sprite.AddAttackCollider(am[Animations.Pistol3], new List <List <Rectangle> >
            {
                new List <Rectangle>(),
                new List <Rectangle> {
                    new Rectangle(0, -14, 148, 29)
                },
            });
            sprite.AddFramesToAttack(am[Animations.Pistol3], 1);
            LinkableFrames[Animations.Pistol3] = new[] { 3, 4 };

            #endregion

            // init fsm
            _fsm = new FiniteStateMachine <PlayerState, PlayerComponent>(this, new StandState());

            // init effects
            _jumpEffectTexture = entity.scene.content.Load <Texture2D>(Content.Effects.jump_effect);

            // misc
            _damageScalingStreak = 10;
            velocityMultiplier   = 1;
        }
コード例 #11
0
        //----------------------//------------------------//

        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Characters.player);

            _animationMap = new Dictionary <Animations, string>
            {
                { Animations.Stand, "stand" },
                { Animations.Walking, "walking" },
                { Animations.Jumping, "jumping" },
                { Animations.Shot, "shot" },
                { Animations.Dying, "dying" },
            };

            var am = _animationMap;

            sprite = entity.addComponent(new AnimatedSprite(texture, am[Animations.Stand]));
            sprite.CreateAnimation(am[Animations.Stand], 0.2f);
            sprite.AddFrames(am[Animations.Stand], new List <Rectangle>()
            {
                new Rectangle(0, 0, 32, 32),
                new Rectangle(64, 32, 32, 32),
                new Rectangle(96, 32, 32, 32),
                new Rectangle(64, 32, 32, 32),
            });

            sprite.CreateAnimation(am[Animations.Walking], 0.1f);
            sprite.AddFrames(am[Animations.Walking], new List <Rectangle>()
            {
                new Rectangle(32, 0, 32, 32),
                new Rectangle(64, 0, 32, 32),
                new Rectangle(96, 0, 32, 32),
                new Rectangle(128, 0, 32, 32),
            });

            sprite.CreateAnimation(am[Animations.Jumping], 0.1f);
            sprite.AddFrames(am[Animations.Jumping], new List <Rectangle>()
            {
                new Rectangle(0, 32, 32, 32),
            });

            sprite.CreateAnimation(am[Animations.Shot], 0.1f);
            sprite.AddFrames(am[Animations.Shot], new List <Rectangle>()
            {
                new Rectangle(32, 0, 32, 32),
                new Rectangle(32, 0, 32, 32),
            });

            sprite.CreateAnimation(am[Animations.Dying], 0.1f);
            sprite.AddFrames(am[Animations.Dying], new List <Rectangle>()
            {
                new Rectangle(32, 32, 32, 32),
                new Rectangle(32, 32, 32, 32),
            });

            // init fsm
            _fsm = new FiniteStateMachine <PlayerState, PlayerComponent>(this, new StandState());

            // init slowdown
            _slowdownPower    = SLOWDOWN_DURATION;
            _slowdownCooldown = 0.0f;
        }
コード例 #12
0
        //----------------------//------------------------//

        public override void initialize()
        {
            var texture = entity.scene.content.Load <Texture2D>(Content.Characters.elliot);

            sprite = entity.addComponent(new AnimatedSprite <Animations>(texture, Animations.Stand));
            sprite.CreateAnimation(Animations.Stand, 0.25f);
            sprite.AddFrames(Animations.Stand, new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
                new Rectangle(64, 0, 64, 64),
                new Rectangle(128, 0, 64, 64),
                new Rectangle(192, 0, 64, 64),
            }, new int[] { 0, 0, 0, 0 }, new int[] { -12, -12, -12, -12 });

            sprite.CreateAnimation(Animations.Walking, 0.1f);
            sprite.AddFrames(Animations.Walking, new List <Rectangle>()
            {
                new Rectangle(0, 64, 64, 64),
                new Rectangle(64, 64, 64, 64),
                new Rectangle(128, 64, 64, 64),
                new Rectangle(192, 64, 64, 64),
                new Rectangle(256, 64, 64, 64),
            }, new int[] { 0, 0, 0, 0, 0 }, new int[] { -12, -12, -12, -12, -12 });

            sprite.CreateAnimation(Animations.JumpPreparation, 0.1f);
            sprite.AddFrames(Animations.JumpPreparation, new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
            }, new int[] { 0 }, new int[] { -12, -12, -12, -12 });

            sprite.CreateAnimation(Animations.JumpUpwards, 0.1f);
            sprite.AddFrames(Animations.JumpUpwards, new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
            }, new int[] { 0 }, new int[] { -12, -12, -12, -12 });

            sprite.CreateAnimation(Animations.JumpFalling, 0.1f);
            sprite.AddFrames(Animations.JumpFalling, new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
            }, new int[] { 0 }, new int[] { -12, -12, -12, -12 });

            sprite.CreateAnimation(Animations.JumpLanding, 0.1f);
            sprite.AddFrames(Animations.JumpLanding, new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 64),
            }, new int[] { 0 }, new int[] { -12, -12, -12, -12 });

            sprite.CreateAnimation(Animations.Hit, 0.1f);
            sprite.AddFrames(Animations.Hit, new List <Rectangle>()
            {
                new Rectangle(224, 32, 32, 32),
                new Rectangle(256, 32, 32, 32),
                new Rectangle(224, 32, 32, 32),
            });

            sprite.CreateAnimation(Animations.Slash, 0.1f, false);
            sprite.AddFrames(Animations.Slash, new List <Rectangle>()
            {
                new Rectangle(320, 32, 32, 32),
                new Rectangle(352, 32, 32, 32),
                new Rectangle(384, 32, 32, 32),
            });

            _fsm = new FiniteStateMachine <PlayerState, PlayerComponent>(this, new StandState());

            _movementInput = new VirtualIntegerAxis();
            _movementInput.nodes.Add(new VirtualAxis.KeyboardKeys(VirtualInput.OverlapBehavior.TakeNewer, Keys.Left, Keys.Right));
        }