Estoy desarrollando un juego de plataformas RPG para un jugador en XNA 4.0. Me gustaría agregar una habilidad que haga que el tiempo se "detenga" o disminuya, y que solo el personaje del jugador se mueva a la velocidad original (similar al hechizo Time Stop de la serie Baldur's Gate). No estoy buscando una implementación exacta, sino algunas ideas generales y patrones de diseño.
EDITAR: Gracias a todos por el gran aporte. Se me ocurrió la siguiente solución
public void Update(GameTime gameTime)
{
GameTime newGameTime = new GameTime(gameTime.TotalGameTime,
new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER));
gameTime = newGameTime;
o algo por el estilo. De esta manera, puedo establecer un tiempo diferente para el componente del reproductor y diferente para el resto. Ciertamente, no es lo suficientemente universal como para trabajar en un juego donde el tiempo de deformación como este sería un elemento central, pero espero que funcione para este caso. No me gusta el hecho de que ensucia el ciclo principal de actualización, pero sin duda es la forma más fácil de implementarlo. Supongo que es esencialmente lo mismo que sugirió tesselode, así que le voy a dar la marca verde :)