コード例 #1
0
        private void CheckKeyboardAndUpdateMovement(GameTime gameTime)
        {
            KeyboardState keyboardState = Keyboard.GetState();

            if (!keyboardState.IsKeyDown(Keys.Left) || !keyboardState.IsKeyDown(Keys.Left))
            {
                Animation.SetRunDirection(Animation.FrameDirection.Front);
            }
            if (keyboardState.IsKeyDown(Keys.Left))
            {
                Movement -= Vector2.UnitX * 0.8f; Animation.SetRunDirection(Animation.FrameDirection.Left);
            }
            if (keyboardState.IsKeyDown(Keys.Right))
            {
                Movement += Vector2.UnitX * 0.8f; Animation.SetRunDirection(Animation.FrameDirection.Right);
            }
            if (keyboardState.IsKeyDown(Keys.Space) && IsOnFirmGround())
            {
                if (!keyboardOldState.IsKeyDown(Keys.Space))
                {
                    Movement = -Vector2.UnitY * 24;                                                  // jump height
                }
            }
            else if (keyboardOldState.IsKeyDown(Keys.Space))
            {
            }                                                     // Key was down last update, but not now, so it has just been released
            keyboardOldState = keyboardState;
        }
コード例 #2
0
 public void Update(GameTime gameTime, Hero player)
 {
     if (Animation != null)
     {
         Animation.Position = Position;
         Animation.SetRunDirection(Animation.FrameDirection.Front);
         Animation.Update(gameTime, Position);
     }
 }
コード例 #3
0
ファイル: Enemy.cs プロジェクト: MaximWauters/GameDev
 private void ChangeRunningDirectionIfBlocked()
 {
     if (Movement.X == 0)
     {
         Speed *= -1;
         Animation.SetRunDirection(Animation.FrameDirection.Right);
     }
     else if (Movement.X < 0)
     {
         Animation.SetRunDirection(Animation.FrameDirection.Front);
     }
 }
コード例 #4
0
 public void Update(GameTime gameTime, Hero player)
 {
     UpdatePositionBasedOnMovement(gameTime);
     if (Animation != null)
     {
         Animation.Position = Position;
         Animation.SetRunDirection(Animation.FrameDirection.Front);
         Animation.Update(gameTime, Position);
     }
     if (Position.Y > 800)           // als trap van het scherm af is reset dan deze trap op dezelfde locatie
     {
         Animation.Position = new Vector2(Position.X, -500);
         Position           = new Vector2(Position.X, -500);
     }
     Collision(player);
 }
コード例 #5
0
ファイル: Enemy.cs プロジェクト: MaximWauters/GameDev
 public void Update(GameTime gameTime, Hero player)
 {
     Movement += Vector2.UnitX * Speed;
     AffectWithGravity();
     SimulateFriction();
     MoveAsFarAsPossible(gameTime);
     StopMovingIfBlocked();
     ChangeRunningDirectionIfBlocked();
     if (Animation != null)
     {
         Animation.Position = Position;
         if (IsHalted)
         {
             Animation.SetRunDirection(Animation.FrameDirection.Front);
         }
         Animation.Update(gameTime, Position);
     }
     Collision(player);
 }
コード例 #6
0
        public void Update(GameTime gameTime)
        {
            CheckKeyboardAndUpdateMovement(gameTime);
            AffectWithGravity();
            SimulateFriction();
            MoveIfPossible(gameTime);
            StopMovingIfBlocked();
            CheckPossibleMovement();

            if (Animation != null)
            {
                Animation.Position = Position;
                if (IsHalted)
                {
                    Animation.SetRunDirection(Animation.FrameDirection.Front);
                }
                Animation.Update(gameTime, Position);
            }
        }