public UnitController(InputManager inputManager, InputState inputState, EntityWorld entityWorld, DisFieldMixer disFieldMixer, Lord lord)
 {
     this.inputManager = inputManager;
     this.inputState = inputState;
     this.entityWorld = entityWorld;
     this.disFieldMixer = disFieldMixer;
     this.lord = lord;
     pathGoal = null;
 }
Exemple #2
0
        public void HandleInput(InputState inputState, PlayerIndex? controllingPlayer)
        {
            if (entityFollowing != null)
            {
                component.Physics physics = entityFollowing.GetComponent<component.Physics>();
                if (physics != null)
                {
                    Vector2 newPos = new Vector2();
                    newPos.X = MathHelper.Lerp(Position.X, physics.Position.X * 32, cameraSpeed);
                    newPos.Y = MathHelper.Lerp(Position.Y, physics.Position.Y * 32, cameraSpeed);
                    Position = newPos;
                }
            }
            else
            {
                Vector2 cameraMovement = Vector2.Zero;

                if (inputState.CurrentKeyboardStates[(int)PlayerIndex.One].IsKeyDown(Keys.Left))
                {
                    cameraMovement.X = -1;
                }
                else if (inputState.CurrentKeyboardStates[(int)PlayerIndex.One].IsKeyDown(Keys.Right))
                {
                    cameraMovement.X = 1;
                }
                if (inputState.CurrentKeyboardStates[(int)PlayerIndex.One].IsKeyDown(Keys.Up))
                {
                    cameraMovement.Y = -1;
                }
                else if (inputState.CurrentKeyboardStates[(int)PlayerIndex.One].IsKeyDown(Keys.Down))
                {
                    cameraMovement.Y = 1;
                }
                if (inputState.IsScrollDown(controllingPlayer))
                {
                    AdjustZoom(-0.1f);
                }
                else if (inputState.IsScrollUp(controllingPlayer))
                {
                    AdjustZoom(0.1f);
                }
                if (Keyboard.GetState().IsKeyDown(Keys.Subtract))
                {
                    AdjustZoom(-0.05f);
                }
                else if (Keyboard.GetState().IsKeyDown(Keys.Add))
                {
                    AdjustZoom(0.05f);
                }

                if (cameraMovement != Vector2.Zero)
                {
                    cameraMovement.Normalize();
                }

                cameraMovement *= Global.tileSize;

                MoveCamera(cameraMovement);
            }
        }
Exemple #3
0
        protected override void Initialize()
        {
            _inputState = new InputState();
            tileManager = new TileManager();
            tileMap = new TileMap(tileManager, new int2(Global.mapWidth, Global.mapHeight));
            entityWorld = new EntityWorld();
            entityTileMap = new EntityTileMap(entityWorld, new int2(Global.mapWidth, Global.mapHeight));
            disFieldMixer = new DisFieldMixer();
            textureManager = new TextureManager();
            animationManager = new AnimationManager();
            world = new FarseerPhysics.Dynamics.World(new Vector2(0f, 0f));
            generator = new Generator(tileMap);
            lord = new Lord("Obama", Color.Red, 0);
            enemyLord = new Lord("Justin Bieber", Color.Brown, 1);
            unitController = new UnitController(null, _inputState, entityWorld, disFieldMixer, lord);

            spriteBatch = new SpriteBatch(GraphicsDevice);

            graphics.PreferredBackBufferWidth = Global.ViewportWidth;
            graphics.PreferredBackBufferHeight = Global.ViewportHeight;
            graphics.ApplyChanges();

            EntitySystem.BlackBoard.SetEntry<SpriteBatch>("SpriteBatch", spriteBatch);
            EntitySystem.BlackBoard.SetEntry<TextureManager>("TextureManager", textureManager);
            EntitySystem.BlackBoard.SetEntry<TileMap>("TileMap", tileMap);
            EntitySystem.BlackBoard.SetEntry<EntityTileMap>("EntityTileMap", entityTileMap);
            EntitySystem.BlackBoard.SetEntry<DisFieldMixer>("DisFieldMixer", disFieldMixer);
            EntitySystem.BlackBoard.SetEntry<FarseerPhysics.Dynamics.World>("PhysicsWorld", world);
            EntitySystem.BlackBoard.SetEntry<Generator>("Generator", generator);
            EntitySystem.BlackBoard.SetEntry<AnimationManager>("AnimationManager", animationManager);

            this.entityWorld.InitializeAll(true);

            base.Initialize();
        }