Esempio n. 1
0
        public void Jump(eJumpDirection i_JumpDirection, float i_DistanceToJump, bool i_IsJumpingBackwards)
        {
            switch (i_JumpDirection)
            {
            case eJumpDirection.Right:

                m_Sprite.Position = new Vector2(m_Sprite.Position.X + i_DistanceToJump, m_Sprite.Position.Y);
                if (!i_IsJumpingBackwards)
                {
                    m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary = ((m_Sprite.Position.X + m_Sprite.Width) >= m_Sprite.Game.GraphicsDevice.Viewport.Width) ? true : false;
                    if (m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary)
                    {
                        m_SpriteOverJumpedData.DirectionToJumpBackwards = eJumpDirection.Left;
                        m_SpriteOverJumpedData.DistanceToJumpBackwards  = (m_Sprite.Position.X + m_Sprite.Width) - m_Sprite.Game.GraphicsDevice.Viewport.Width;
                    }
                }

                break;

            case eJumpDirection.Left:
                m_Sprite.Position = new Vector2(m_Sprite.Position.X - i_DistanceToJump, m_Sprite.Position.Y);
                if (!i_IsJumpingBackwards)
                {
                    m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary = (m_Sprite.Position.X <= 0) ? true : false;
                    if (m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary)
                    {
                        m_SpriteOverJumpedData.DirectionToJumpBackwards = eJumpDirection.Right;
                        m_SpriteOverJumpedData.DistanceToJumpBackwards  = Math.Abs(m_Sprite.Position.X);
                    }
                }

                break;

            case eJumpDirection.DownAndRight:
            case eJumpDirection.DownAndLeft:
                if (m_Sprite.Position.Y + i_DistanceToJump < m_Sprite.Game.GraphicsDevice.Viewport.Height)
                {
                    m_Sprite.Position = new Vector2(m_Sprite.Position.X, m_Sprite.Position.Y + i_DistanceToJump);
                }
                else
                {
                    m_Sprite.Position = new Vector2(m_Sprite.Position.X, m_Sprite.Game.GraphicsDevice.Viewport.Height - m_Sprite.Height);
                }
                m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary = false;
                break;
            }
        }
Esempio n. 2
0
        public void Jump(eJumpDirection i_JumpDirection, float i_DistanceToJump, bool i_IsJumpingBackwards)
        {
            switch (i_JumpDirection)
            {
                case eJumpDirection.Right:

                    m_Sprite.Position = new Vector2(m_Sprite.Position.X + i_DistanceToJump, m_Sprite.Position.Y);
                    if (!i_IsJumpingBackwards)
                    {
                        m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary = ((m_Sprite.Position.X + m_Sprite.Width) >= m_Sprite.Game.GraphicsDevice.Viewport.Width) ? true : false;
                        if (m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary)
                        {
                            m_SpriteOverJumpedData.DirectionToJumpBackwards = eJumpDirection.Left;
                            m_SpriteOverJumpedData.DistanceToJumpBackwards = (m_Sprite.Position.X + m_Sprite.Width) - m_Sprite.Game.GraphicsDevice.Viewport.Width;
                        }
                    }

                    break;

                case eJumpDirection.Left:
                    m_Sprite.Position = new Vector2(m_Sprite.Position.X - i_DistanceToJump, m_Sprite.Position.Y);
                    if (!i_IsJumpingBackwards)
                    {
                        m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary = (m_Sprite.Position.X <= 0) ? true : false;
                        if (m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary)
                        {
                            m_SpriteOverJumpedData.DirectionToJumpBackwards = eJumpDirection.Right;
                            m_SpriteOverJumpedData.DistanceToJumpBackwards = Math.Abs(m_Sprite.Position.X);
                        }
                    }

                    break;

                case eJumpDirection.DownAndRight:
                case eJumpDirection.DownAndLeft:
                    if (m_Sprite.Position.Y + i_DistanceToJump < m_Sprite.Game.GraphicsDevice.Viewport.Height)
                    {
                        m_Sprite.Position = new Vector2(m_Sprite.Position.X, m_Sprite.Position.Y + i_DistanceToJump);
                    }
                    else
                        m_Sprite.Position = new Vector2(m_Sprite.Position.X, m_Sprite.Game.GraphicsDevice.Viewport.Height - m_Sprite.Height);
                    m_SpriteOverJumpedData.IsTouchedScreenHorizontalBoundary = false;
                    break;
            }
        }