Есть функция:
var isCall = false;
var fnClick = function(){
canvas.onclick = function(event){
if (isCall) {
return false;
}
isCall = true;
var x = event.offsetX==undefined ?event.layerX:event.offsetX;
var y = event.offsetY==undefined ?event.layerY:event.offsetY;
ctx.beginPath();
ctx.arc(x, y, 5, 0,Math.PI*2,false);
ctx.fillStyle = 'red';
ctx.fill();
console.log(x +'x'+ y);
if (ctx.isPointInPath(p1, x, y)) {
//Множитель очков ТУТ
document.getElementById('points').innerHTML = player.points + 5;
}else {
alert('lose');
}
};
};
Нужно добавить цикл состоящий из 5 итераций, длительностью в 15 секунд каждая, при не выполнении условия (ctx.isPointInPath(p1, x, y), цикл должен прекращаться, а при выполнении данного условия продолжать работу, так же данная функция должна вызываться строго 1 раз за итерацию (Я это попытался реализовать установив флаг, но функция ограничивается 1 разом при всем выполнении кода)
Хорошо. Давайте разбираться.
Начнем с первой строчки. Вы говорите, что эта функция (fnClick?) многократно вызывается. Эти многократные вызовы - бессмыслены. Все, что делает функция fnClick, это назначает обработчик canvas.onclick:
var fnClick = function(){
canvas.onclick = function(event){
...
};
};
Причем присваивает она этому обработчику все время одно и то же. То есть польза есть только от одного - самого первого - вызова fnClick.
До сих пор все понятно?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости