Kareyi kontrol etmek için asla Uyku'yı asla, asla, asla, asla kullanmamalısınız .
Bu daha önce bitti ve nedenlerini tartışmak için sizi diğer soruya yönlendireceğim. Bir şey değil 60Hz tipik Modern yenileme hızında ve Uyku aramaların tipik 1 milisaniye boyu ile, bu çerçevelerin arasındaki zaman ve doğru miktarda Uyku aslında imkansız olduğunu vardır belirtti.
Ben değilim değil size ilgisi var eğer CPU veren kötü bir şey olduğunu söyleyerek; ne münasebet. Ancak, kare hızını kontrol etmekle aynı şey değildir ve Uyku, öncekine uygun olan ancak ikincisine uygun olmayan bir çözümdür.
Bunun yerine geçen süreyi kontrol edin ve bir çerçeve çalıştırma zamanı gelmişse, aksi halde bunu yapın - ve biraz CPU vermek istiyorsanız - Çıplak minimum süre uyuyun - 1 milisaniye. Ayrıca, iyi bir çözünürlük sağlamak için uyku zamanlayıcınızın platformunuz için uygun şekilde ayarlandığından emin olun; yani "Uyku (1)" çağrısında bulunduğunuzda, aslında 15, 20 veya 30 gibi bir şey yerine 1 milisaniyede gerçekten uyuma şansınız vardır (aksi takdirde durum böyle olur). SDL'nin bunu sizin için otomatik olarak yapacağına inanıyorum.
Ayrıca, bir çerçeve çalıştırmak için zamanınız yaklaşırsa, Uyku modunu durdurabilir ve çerçeve çalışana kadar düz bir şekilde çalışmaya başlayabilirsiniz, bu da istediğiniz çerçeve aralığını daha doğru bir şekilde vurmanıza yardımcı olabilir.
Bunun neye benzediği, ara sıra çerçeveyle serpiştirilmiş bir sürü Uyku (1) çağrısıdır ve bu sorun değildir. İhtiyacınız olmadığında hala CPU'dan vazgeçiyorsunuz, ancak çerçeveleriniz zamanında çalışmaya devam edebilecek.