Video: Cara Kalibrasi Sensor Accelerometer yang Error di Xiaomi Redmi 4 Series: Tested Mi5 2024
Secara default, accelerometer game HTML5 mengasumsikan posisi netral horizontal sempurna - yaitu perangkat tergeletak rata di atas meja. Namun, ini adalah perangkat mobile, dan gamer akan sering ingin memiliki posisi netral berada di tempat lain.
Teknik dasar untuk mengkalibrasi kontrol tilt adalah untuk melacak nilai offset untuk AX dan AY. Bila pengguna memilih untuk mengkalibrasi ulang, nilai offset diubah untuk membuat posisi netral baru. Inilah kode yang relevan:
accel. permainan var html; bola var; var accel; var btnCalibrate; var offsetAX = 0; var offsetAY = 0; fungsi init () {game = new Scene (); bola = sprite baru (permainan, "redBall. png", 50, 50); accel = Accel baru (); btnCalibrate = GameButton baru ("kalibrasi"); btnCalibrate setSize (100, 100); btnCalibrate setPosition (100, 100); permainan. start ();} // end init function checkButton () { if (btnCalibrate. isClicked ()) { offsetAY = accel. getay (); offsetAX = accel. getAX (); } } pembaruan fungsi () {permainan. bersih(); centang centang (); newDX = accel. getay () - offsetAY; newDY = accel. getAX () - offsetAX; newDX * = -5; newDY * = -5; bola. setDX (newDX); bola. setDY (newDY); bola. update ();}
Entah bagaimana Anda harus memicu kalibrasi. Untuk contoh ini, Anda menambahkan tombol kalibrasi dasar. Begini cara kerjanya:
-
Tambahkan variabel offsetAX dan offsetAY.
Kedua variabel ini menunjukkan seberapa besar posisi netral perangkat dibandingkan dengan standar flat-on-the-table attitude. Mulailah variabel pada nilai nol.
-
Tambahkan tombol kalibrasi.
Untuk contoh ini, pengguna dapat mengkalibrasi ulang dengan mengklik sebuah tombol.
-
Periksa tombol tekan.
Fungsi dibuat untuk membaca penekanan tombol.
-
Jika tombol ditekan, dapatkan nilai offset baru.
Saat tombol aktif, temukan nilai AX dan AY saat ini dengan meminta mereka dari objek Accel.
-
Kurangi offset dari kapak dan ay pada setiap bingkai.
Sebelum perhitungan lainnya, kurangi offsetAX dari AX dan offsetAY dari AY. Ini akan secara efektif mengatur posisi netral baru namun perangkat diset terakhir kali tombolnya diklik.
Meskipun tombol kalibrasi sangat mudah diterapkan, terkadang kalibrasi dilakukan secara otomatis. Jika Anda suka, cukup tentukan offsetAX dan offsetAY selama fungsi init (), dan sikap perangkat selama fungsi init () menjadi default. Ini tidak memungkinkan pengguna untuk mengatur ulang kalibrasi, namun ini mencegah layar tidak berantakan dengan tombol yang jarang digunakan.