Коллизия объектов Canvas
У меня есть 2 объекта - Персонаж и монетка. У монетки есть ключ со значением true, и пока она true я рисую монетку на холсте. Вот условие с коллизий
if(player.x + player.width >= coin.x && player.x + player.width <= coin.x + coin.width) {
coin.status = false;
player.score++;
}
Статус монетки становится false и она больше не рисуется при пересечений объектов. Проблема в том, что я не могу сообразить как мне прибавить очко игроку нормально. У меня получается, если находится в этом диапозоне, то очки будут прибавляются бесконечно. Игра находится в бесконечном цикле, где все перерисовывается. Поэтому я вызываю функцию генераций монетки. Код игры : https://github.com/woody21978/game/blob/master/test.html (тут коллизия не обновлена) игра в браузере:https://woody21978.github.io/game/test.html
Ответы (1 шт):
Полагаю так:
if (player.x + player.width >= coin.x &&
player.x + player.width <= coin.x + coin.width) {
if (coin.status) {
coin.status = false;
player.score++;
}
}