Sto sviluppando un platform RPG per giocatore singolo in XNA 4.0. Vorrei aggiungere un'abilità che farebbe “fermare” o rallentare il tempo e che solo il personaggio del giocatore si muovesse alla velocità originale (simile all'incantesimo Time Stop della serie Baldur's Gate). Non sto cercando un'implementazione esatta, piuttosto alcune idee generali e modelli di progettazione.
EDIT: grazie a tutti per l'ottimo contributo. Ho trovato la seguente soluzione
public void Update(GameTime gameTime)
{
GameTime newGameTime = new GameTime(gameTime.TotalGameTime,
new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER));
gameTime = newGameTime;
o qualcosa del genere. In questo modo posso impostare un orario diverso per il componente giocatore e diverso per il resto. Certamente non è abbastanza universale lavorare per un gioco in cui il tempo deformato come questo sarebbe un elemento centrale, ma spero che dovrebbe funzionare in questo caso. Non mi piace il fatto che sporchi il ciclo di aggiornamento principale, ma è sicuramente il modo più semplice per implementarlo. Immagino che sia essenzialmente lo stesso suggerito da tesselode, quindi gli darò il segno di spunta verde :)