Цикл для игры на JS

174
22 августа 2018, 19:40

Есть функция:

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 разом при всем выполнении кода)

Answer 1

Хорошо. Давайте разбираться.

Начнем с первой строчки. Вы говорите, что эта функция (fnClick?) многократно вызывается. Эти многократные вызовы - бессмыслены. Все, что делает функция fnClick, это назначает обработчик canvas.onclick:

var fnClick = function(){
  canvas.onclick = function(event){
    ...
  };
};

Причем присваивает она этому обработчику все время одно и то же. То есть польза есть только от одного - самого первого - вызова fnClick.

До сих пор все понятно?

READ ALSO
Где посмотреть исходный код запроса ajax?

Где посмотреть исходный код запроса ajax?

Не понимаю, сделал обычный ajax запрос, что бы подгрузилась разметка, в браузере всё отображается, что надо, а заглянул в исходный код, а там...

159
Добавить тект к google maps кластерам

Добавить тект к google maps кластерам

Делаю подключение к google maps все работает, но не могу понять как текс при наведении на кластер добавитьПотому как из бд данные подгружаются...

204
Поочередная заливка кнопок onClick [дубликат]

Поочередная заливка кнопок onClick [дубликат]

На данный вопрос уже ответили:

148
как сделать jquery masked input на несколько телефонов?

как сделать jquery masked input на несколько телефонов?

jquery masked input плагинЕсть несколько полей с телефонами с таким классом, но работает почему-то на самом первом

148