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; } }
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; } }