Saya pernah membaca bahwa kecepatan objek game tidak boleh terhalang oleh FPS tetapi harus berdasarkan waktu. Bagaimana saya bisa memisahkan kode pembaruan / menggambar untuk memaksimalkan kinerja tanpa membatasi kecepatan menggambar dan memberikan tingkat pembaruan logika konstan berdasarkan waktu?
Kode pseudo saya saat ini adalah sebagai berikut
loop
{
draw();
if (ticksElapsed() > 100)
{
update();
ticks+= ticksElapsed();
}
}
Masalahnya adalah kode gambar menghalangi kinerja tingkat pembaruan (). Dan ia mengkonsumsi 100% cpu karena jika tidur dilemparkan, ia membuang kedua fungsi menggambar / logika.
Saya juga menggunakan SDL dan sepertinya tidak memiliki opsi vsync. Saya juga pernah mendengar tentang istilah yang tetap dan variabel loncatan waktu namun saya tidak yakin bagaimana hal itu dapat dilakukan dengan tidur ()