// Interval milliseconds between accelerometer readings const poll_interval = 200 $(document).ready(function(){ // We may not have an accelerometer var has_accel = false // Make the SVG occupy all the screen $('body').css({ width: '100vw', height: '100vh', margin: 0, padding: 0, overflow: 'hidden' }) $('#left-bits').css({ width: '100%', height: '100%', background: '#931', margin: 0 }) .removeAttr('viewBox') .each(function() { $(this)[0].setAttribute('viewBox', '0 0 ' + parseInt($('body').css('width')) + ' ' + parseInt($('body').css('height'))) }) console.log("-- ready --"); // on déclare l'ensemble des variables ax et ay sont les données // d'acceleration, n c'est la norme, maxn et minn les valeurs max // et min de la norme, et pas le nombre de pas var n=0, maxn = 0, minn = 0, pas = 0, ax = 0, ay = 0, az = 0, pass=0; function odmHandler(e) { // we do have an accelerometer has_accel = true // read from it ax = event.accelerationIncludingGravity.x ; ay = event.accelerationIncludingGravity.y ; az = event.accelerationIncludingGravity.z ; } // fake an accelerometer // min/max at -12/12 mean reasonably fast pace // grow to accelerate // < 10 might not bring any result function fakeAccel() { var min = -12, max = 12 return Math.random() * (max - min) + min; } function mockAccelerometer() { // we're on a desktop, yep has_accel = false // make up values ax = fakeAccel() ay = fakeAccel() az = fakeAccel() } //programme d'alberto desarullo qui va chercher les données de l'accelerometre // Why do you have the interface if you don't have the device? if (window.DeviceMotionEvent != undefined) { window.ondevicemotion = odmHandler var ev = new Event("requestMove"); function pollAccelerometer() { setInterval(makeStep, poll_interval) } function makeStep() { if (!has_accel) { // no accelerometer: fake values mockAccelerometer() } // on calcule la norme c'est à dire la taille du // vecteur qui est défini par les points // d'accélération ax ay et az n0 = n; n = Math.sqrt (ax*ax + ay*ay + az*az); // on calcule un min et max pour la norme if (n < n0) { minn = n ; } else if (n > n0) { maxn = n ; } // on définit un seuil qui correspond à un pas if ((maxn - minn) > 10) { // on simule multi-joueur en assignant une team au pas //pas = pas+1; var this_team = teams[rInt(0, teams.length - 1)] updateScore(this_team, 1) document.dispatchEvent(ev); } } pollAccelerometer(); } })