Necesita ayuda con los objects que se mueven hacia el jugador

Estoy haciendo un juego 2D con "gravedad" simple: todo se tira hacia 0,0. La velocidad a la que aceleran hacia ella es GravityAcceleration hasta MaxGSpeed .

También quiero que el jugador sea capaz de tirar de estos objects también. Estoy usando Magnitism y MaxSpeed para lidiar con la aceleración y la velocidad a la que los objects se mueven hacia el jugador.

Sin embargo, no funciona, y no tengo idea de lo que estoy haciendo mal. La function MoveToPlayer solo se MoveToPlayer si el jugador se encuentra dentro de las 500 unidades del object.

¿Alguien puede ver dónde me estoy equivocando?

 public virtual void Update(GameTime gameTime) { var vectorToSun = new Vector2(0, 0) - Position; var distanceToCenter = vectorToSun.Length(); vectorToSun.Normalize(); _velocity += vectorToSun * GravityAcceleration * (float)gameTime.ElapsedGameTime.TotalSeconds; if (_velocity.Length() > MaxGSpeed) { _velocity.Normalize(); _velocity *= MaxGSpeed; } Position += _velocity * (float)gameTime.ElapsedGameTime.TotalSeconds; rotation += 0.003f; } public void MoveToPlayer(Vector2 playerPos, GameTime gameTime) { var vectorToPlayer = playerPos - Position; vectorToPlayer.Normalize(); _velocity += vectorToPlayer * Magnitism * (float)gameTime.ElapsedGameTime.TotalSeconds; if (_velocity.Length() > MaxSpeed) { _velocity.Normalize(); _velocity *= MaxSpeed; } }