Bagaimana untuk Mengawal FPS dalam Animasi Menggunakan requestAnimationFrame?

Susan Sarandon
Lepaskan: 2024-10-30 14:43:41
asal
778 orang telah melayarinya

How to Control FPS in Animations Using requestAnimationFrame?

Mengawal FPS dengan requestAnimationFrame

requestAnimationFrame telah menjadi kaedah pilihan untuk animasi yang lancar, tetapi kadangkala ia boleh dijalankan pada kelajuan yang berbeza-beza. Berikut ialah teknik untuk memastikan kadar bingkai yang konsisten:

Permintaan pendikitAnimationFrame kepada FPS Tertentu

Kaedah ini menggunakan semakan bersyarat untuk hanya melaksanakan kod animasi apabila FPS tertentu selang telah berlalu.

Pelaksanaan:

  1. Memulakan Pembolehubah:

    • Buat pembolehubah untuk berhenti, kiraan bingkai, masa berlalu, masa mula dan selang FPS.
  2. Mulakan Animasi:

    • Mulakan ini pembolehubah dan gunakan fungsi animate() untuk memulakan gelung.
  3. Gelung Animasi:

    • Kira masa berlalu sejak gelung terakhir menggunakan Date.now().
    • Jika berlalu lebih besar daripada fpsInterval, lukis bingkai seterusnya.
    • Laraskan kemudian untuk mengambil kira perbezaan antara selang FPS dan lalai RAF selang waktu.
  4. Kod Lukisan:

    • Letakkan kod lukisan anda dalam semakan bersyarat (jika berlalu > fpsSelang) .

Contoh Kod:

<code class="javascript">var stop = false;
var frameCount = 0;
var fps, fpsInterval, startTime, now, then, elapsed;

function startAnimating(fps) {
    fpsInterval = 1000 / fps;
    then = Date.now();
    startTime = then;
    animate();
}

function animate() {
    requestAnimationFrame(animate);

    now = Date.now();
    elapsed = now - then;

    if (elapsed > fpsInterval) {
        then = now - (elapsed % fpsInterval);

        // Put your drawing code here
    }
}</code>
Salin selepas log masuk

Pendekatan ini memastikan animasi berjalan pada FPS yang ditentukan, tanpa mengira pelayar kelajuan pemaparan.

Atas ialah kandungan terperinci Bagaimana untuk Mengawal FPS dalam Animasi Menggunakan requestAnimationFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan