В настоящее время я создаю игру, в которой используются монеты, которые выходят из нижней части экрана в случайной позиции X. Если герой перекрывает/сталкивается с монетами, пользователь получает точку.Улучшение производительности обнаружения столкновений в HTML5/Javascript
Моя проблема в том, что когда я обнаружил свое обнаружение столкновений в функции быстрого интервала, кажется, что столкновение не регистрируется в некоторых случаях.
Я копировал игру в ниже jsfiddle (первоначально он использует акселерометр телефона, чтобы переместить героя, но для этого примера я быстро сделал это контроль левый/правый ключ на основе) - http://jsfiddle.net/wpavxn6k/1/
отрывок из интервала ниже -
//keep checking to see if collision has occured
window.setInterval(function() {
if (hitTest(app.hero, app.coinClassUnique) == true) {
app.coinClassUnique.css('display', 'none');
app.score++;
$("h2").html(app.score);
}
}, 5);
//measure the width/height and position of the coin div and the hero image to determine if they are overlapping
function hitTest(a, b) {
var aPos = a.offset();
var bPos = b.offset();
var aLeft = aPos.left;
var aRight = aPos.left + a.width();
var aTop = aPos.top;
var aBottom = aPos.top + a.height();
var bLeft = bPos.left;
var bRight = bPos.left + b.width();
var bTop = bPos.top;
var bBottom = bPos.top + b.height();
return !(bLeft > aRight || bRight < aLeft || bTop > aBottom || bBottom < aTop);
}
мой вопрос, можно ли увидеть очевидный недостаток в моем коде, который может отразиться на производительности, или если есть какие-либо советы о том, как я могу улучшить обнаружение производительности и столкновений в реальной игра на основе времени, подобная этой.