Rumah  >  Soal Jawab  >  teks badan

javascript - Saya membuat permainan kanvas h5, menggunakan requestanimation untuk mengawal pergerakan arah, dan kekunci untuk mengawal sama ada untuk menekan kekunci arah, tetapi ia agak tersekat. Bolehkah anda beritahu saya cara mengoptimumkannya?

Saya tidak boleh menaip kod tertentu Adakah terdapat pakar yang boleh memberikan nasihat berharga

过去多啦不再A梦过去多啦不再A梦2663 hari yang lalu846

membalas semua(4)saya akan balas

  • 高洛峰

    高洛峰2017-07-05 10:58:06

    1. Tukar animasi dalam bingkai kepada animasi dalam masa

    2. Untuk gambar yang tidak perlu ditukar dengan kerap, seperti latar belakang, dsb., sila gunakan kanvas luar skrin

    3. Untuk beberapa butiran, seperti canvas.width, dsb., anda perlu menggunakan width = canvas.width untuk menyimpan nilai

    4. Gunakan pendikit fungsi

    5. Tindakan yang dicetuskan oleh peristiwa tidak seharusnya berdasarkan fungsi terikat Parameter pencetus perlu dihantar ke dalam program dan dilaksanakan melalui gelung permainan. Sebagai contoh: apabila mengklik anak panah kanan, anda hanya perlu memberitahu badan permainan bahawa bergerak ke kanan telah dicetuskan, dan program menentukan cara untuk bergerak.

    6. Optimumkan gelung Secara umumnya, sebab utama program berjalan perlahan adalah ini Terdapat terlalu banyak logik dalaman dan tiada masa untuk memprosesnya dalam gelung unit nombor rawak, dsb., anda boleh lulus Worker digunakan untuk melaksanakannya Untuk beberapa fungsi yang tidak perlu digunakan dengan kerap, sila cuba elakkan memanggilnya Hanya selepas situasi tertentu dicetuskan dan nilai parameter berubah . Sebagai contoh, if(go) dosomething(); hanya beroperasi apabila go adalah benar, yang boleh menjimatkan banyak masa.

    Sudah tentu, butiran pengoptimuman khusus perlu ditentukan mengikut kod anda Saya hanya boleh bercakap tentang perkara umum ini, sebenarnya, kebanyakan idea pengoptimuman adalah sama

    balas
    0
  • 天蓬老师

    天蓬老师2017-07-05 10:58:06

    Mungkin masalah dengan pendaftaran acara Anda boleh mulakan dengan delegasi acara dan membatalkan acara selepas dom selesai.

    Anda boleh menggunakan chrome devtool untuk membuka profil dan menyemak cpu dan memori untuk melihat sama ada sebarang fungsi mengalami kebocoran atau masalah lain.

    balas
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:58:06

    Gunakan penyegaran separa kanvas dan bukannya menyegarkan keseluruhan skrin setiap kali anda mengalihkannya

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-07-05 10:58:06

    Adakah anda menulis permainan menggunakan DOM? Atau gunakan CANVAS

    balas
    0
  • Batalbalas