Вам нужно переместить код, который создает растения (блок for ()) внутри функции, которая вызывается каждые 5 секунд (воспроизводить растения).Таким образом, каждый раз, когда вызывается функция, она создает растения.
Если вы пытаетесь добавлять только 5 новых растений каждые 5 секунд в массив растений, вам не следует каждый раз воссоздавать массив.Лучше отслеживать последний добавленный вами индекс, а затем продолжить сразу после этого.
Я создал переменную с именем lastCreatedIndex
, чтобы вы могли лучше понять, что происходит.Так что в первый раз код будет запускаться plants[i]
с 0 до 4, второй с 5 до 9 ...
var myPlants = [];
var lastCreatedIndex;
var plantSpawn;
function createPlants() {
plantSpawn = 5; //Initialize with 5 plants
lastCreatedIndex = 0; // Starts from index 0
reproducePlants();
setInterval(reproducePlants, 5000);
}
function reproducePlants() {
for(var i = 0 + lastCreatedIndex; i < plantSpawn; i++) {
var plant = new Object();
plant.x = Math.random() * canvas.width;
plant.y = Math.random() * canvas.height;
plant.rad = 2;
plant.skin = 'green';
myPlants[i] = plant;
console.log(i); // Output the number of the plant that has been added
}
lastCreatedIndex = i; //Update the last index value
plantSpawn += 5;
}