Ejemplo n.º 1
0
        public Entity createNPC(Vector2 position, string idModifier = "", NpcLogic.Team team = NpcLogic.Team.None)
        {
            var entity = new Entity($"player{idModifier}");

            entity.position = position;
            entity.scale    = 2;
            var dynamic = new Dynamic(150.0f);

            dynamic.colliderRadius = 10;
            entity.AddComponent(dynamic);
            entity.AddComponent(new NpcLogic(4000, 150, team));

            var animationController = new DirectionalAnimationControl();
            var animationDelay      = 200.0f;
            var moveRight           = new Animation(animationDelay);

            moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_435));
            moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_436));
            moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_437));
            moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_438));
            animationController.animations.Add(DirectionalAnimationControl.Direction.Right, moveRight);

            var moveLeft = new Animation(animationDelay);

            moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_439));
            moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_440));
            moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_441));
            moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_442));
            animationController.animations.Add(DirectionalAnimationControl.Direction.Left, moveLeft);

            var moveUp = new Animation(animationDelay);

            moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_431));
            moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_432));
            moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_433));
            moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_434));
            animationController.animations.Add(DirectionalAnimationControl.Direction.Up, moveUp);

            var moveDown = new Animation(animationDelay);

            moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_427));
            moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_428));
            moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_429));
            moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_430));
            animationController.animations.Add(DirectionalAnimationControl.Direction.Down, moveDown);
            entity.AddComponent(animationController);

            var animatedSprite = new AnimatedSprite();

            animatedSprite.animation = moveDown;
            entity.AddComponent(animatedSprite);

            return(entity);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
            keyboardState = Keyboard.GetState();

            entities.Add(entityFactory.createPlayer(new Vector2(Config.ScreenWidth / 2, Config.ScreenHeight / 2)));

            var teams = new NpcLogic.Team[] { NpcLogic.Team.Red, NpcLogic.Team.Blue };

            for (var i = 0; i < 2; i++)
            {
                for (var j = 0; j < Config.NumberOfNpcs; j++)
                {
                    entities.Add(entityFactory.createNPC(new Vector2(500.0f + i * 1000, 400.0f + j * 30.0f), $"player_{i}{j}", teams[i]));
                }
            }
        }