Saya mengembangkan platformer RPG pemain tunggal di XNA 4.0. Saya ingin menambahkan kemampuan yang akan membuat waktu "berhenti" atau melambat, dan hanya karakter pemain yang bergerak dengan kecepatan asli (mirip dengan mantra Time Stop dari seri Gerbang Baldur). Saya tidak mencari implementasi yang tepat, melainkan beberapa ide umum dan pola desain.
EDIT: Terima kasih semua atas masukan yang bagus. Saya telah menemukan solusi berikut
public void Update(GameTime gameTime)
{
GameTime newGameTime = new GameTime(gameTime.TotalGameTime,
new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER));
gameTime = newGameTime;
atau sesuatu di sepanjang garis ini. Dengan cara ini saya dapat mengatur waktu yang berbeda untuk komponen pemain dan berbeda untuk sisanya. Ini tentu saja tidak cukup universal untuk bekerja pada permainan di mana waktu warping seperti ini akan menjadi elemen sentral, tapi saya harap ini akan bekerja untuk kasus ini. Saya agak tidak suka fakta bahwa itu mengotori loop Pembaruan utama, tetapi tentu saja adalah cara termudah untuk mengimplementasikannya. Saya kira itu penting sama seperti yang disarankan tesselode, jadi saya akan memberinya tanda centang hijau :)