Exemplo n.º 1
0
        public Level(Texture2D background, Texture2D collisionTexture, Vector2 startPosition, int startAnimation)
        {
            Background = background;
            Collision = new Collision(collisionTexture);

            StartPosition = startPosition;
            StartAnimation = startAnimation;
        }
Exemplo n.º 2
0
        public void Update(float deltaTime, Collision collision)
        {
            KeyboardState keyboardState = Keyboard.GetState();
            Boolean moving = false;
            float multiplier = 1.5f;
            Vector2 desiredPosition = Position;

            if (keyboardState.IsKeyDown(Keys.Space))
                multiplier = 2.3f;

            if (keyboardState.IsKeyDown(Keys.Left))
            {
                Sprite.AnimationId = 3;
                moving = true;
                desiredPosition.X -= 100f * deltaTime * multiplier;
            }

            if (keyboardState.IsKeyDown(Keys.Right))
            {
                Sprite.AnimationId = 2;
                moving = true;
                desiredPosition.X += 100f * deltaTime * multiplier;
            }

            if (keyboardState.IsKeyDown(Keys.Up))
            {
                Sprite.AnimationId = 1;
                moving = true;
                desiredPosition.Y -= 100f * deltaTime * multiplier;
            }

            if (keyboardState.IsKeyDown(Keys.Down))
            {
                Sprite.AnimationId = 0;
                moving = true;
                desiredPosition.Y += 100f * deltaTime * multiplier;
            }

            //If the sprite is moving, and the desired location is valid, we move it and update animation
            if ((moving) && (!collision.DoesCollide(desiredPosition)))
            {
                Position = desiredPosition;
                Sprite.UpdateAnimation(deltaTime * multiplier);
            }
            else
                Sprite.FrameIndex = 1;
        }