Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать перезарядку для игры? (https://javascript.ru/forum/misc/77182-kak-sdelat-perezaryadku-dlya-igry.html)

RasuLcrose 03.04.2019 11:01

Как сделать перезарядку для игры?
 
Я пишу игру танчики на 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;
        }


Помогите, желательно кодом!):cray:

username 03.04.2019 12:22

нужно вместо цикла for использовать рекурсивную функцию
в конце которой опять вызывается та же самая функция с помощью setTimeout("func",2000)

RasuLcrose 03.04.2019 12:45

Как тогда их отрисовывать?
Без for не получиться

Dilettante_Pro 03.04.2019 16:23

<script>
var oldTime = new Date();
var newTime = 0;

// if(self.key == 32) {
   while(true) { // бесконечный цикл, имитирующий постоянно нажатый пробел
     newTime = new Date();
     if(newTime - oldTime > 2000) { // Каждые 2 секунды
          console.log('Новая пуля'); // this.bullets.push(new Bullet(data.a, data.x, data.y, data.h, data.w));
          oldTime = newTime;
     }
}
</script>


Часовой пояс GMT +3, время: 03:28.