Estoy usando una fórmula muy básica para calcular a qué ángulo debe enfrentar mi sprite (por ejemplo, la nave espacial) en función del control del mando Xbox, es decir, se usa el control para girar la nave.
En mi método de actualización principal:
shuttleAngle = (float) Math.Atan2(newGamePadState.ThumbSticks.Right.X, newGamePadState.ThumbSticks.Right.Y);
En mi método de dibujo principal:
spriteBatch.Draw(shuttle, shuttleCoords, sourceRectangle, Color.White, shuttleAngle, origin, 1.0f, SpriteEffects.None, 1);
Como puede ver, es bastante simple, tomo los radianes actuales de la barra de control y los guardo en un flotador shuttleAngle
y luego los uso como argumento del ángulo de rotación (en radianes) para dibujar el transbordador.
Por alguna razón, cuando giro el sprint, se siente pegajoso en ángulos de 0, 90, 180 y 270 grados. Quiere establecerse en esos ángulos. No me está dando una rotación suave y natural como me sentiría en un juego que usa una mecánica similar. PD: ¡Mi controlador Xbox está bien!
shuttleAngle
para ver si eso se queda en esos ángulos