Как сделать перезарядку в игре?

136
05 января 2020, 01:10

Я пишу игру - танчики на php/js. Мне нужно сделать так, чтобы, зажимая пробел, пули не отрисовывались бесконечно, создавая хаос. Нужно как-то сделать между ними интервал в 2 секунды. Рекурсия не поможет.

//Добавляю в массив пулю
if(self.key == 32) {
       this.bullets.push(new Bullet(data.a, data.x, data.y, data.h, data.w));
}
//Отрисовываю их
for(bullet in this.bullets) {
    bullet = this.bullets[bullet];
    bullet.drawBullet();
    tank.isUpdated = true
}
Answer 1

Сначала сохрани время момента выстрела, когда нажмут на выстрел то в if проверь разницу интервала между последним и данным выстрелом,и если больше чем твой интервал то запускай функцию стрельбы и обновляй счетчик))))

Answer 2

var prev = new Date(); 
if(self.key == 32) { 
        var cur = new Date(); 
       if((cur - prev) / 1000 >= 2) { 
          prev = cur; 
          this.bullets.push(new Bullet(data.a, data.x, data.y, data.h, data.w)); 
       } 
}

READ ALSO
Узнать о подгрузке страницы

Узнать о подгрузке страницы

Пишу расширение для google chrome, на страницах vk он выполняет некие действия, например перекрашивает заголовки постов в сообществах в другой цветСкрипт...

141
Получить ширину и высоту до загрузки файла

Получить ширину и высоту до загрузки файла

Возможно ли получить ширину и высоту изображения после того, как пользователь выбрал файл, но ещё его не загрузил на сервер?

138
Проблема в Buffer с русскими буквами

Проблема в Buffer с русскими буквами

Массива кода символов был составлен через этот он-лайн сервис: http://wwwmauvecloud

115
Добавление класса DOM элементу на 1.5 секунды

Добавление класса DOM элементу на 1.5 секунды

Не получается реализовать такую логику - нужно навешивать элементу класс со свойством pointer-events: none; на 15 секунды после изменения state

117