// calculate bounce based on distance from clown center to trampoline center int angle = trampolineRectangle.Center.X - clownRectangle.Center.X + 90; float newY = 800 * (float)Math.Sin(MathHelper.ToRadians((float)(angle))); float newX = 800 * (float)Math.Cos(MathHelper.ToRadians((float)(angle))); clown.Velocity.X = newX; clown.Velocity.Y = newY; clown.Velocity.Y *= -1; clown.Position.Y = trampolinePosition.Y - clown.Texture.Height; bounce.Play();