Atölye › Space Invaders Tarzı › 17/21. adım
Bütün istilacılar ölünce yeni bir dalga gelsin. Bunun için diziliş kurmayı bir fonksiyona taşıyoruz: spawnWave
(dalga doğur). Mermileri ve bombaları da temizleyip yürüyüşü baştan başlatıyor. Oyun onu başta bir kez çağırıyor.
Oyun aynı görünüyor; değişen, kodun düzeni.
```js
let bullets
let invaders
let bombs
let dir // +1 marching right, -1 marching left
let lastStep
let lastShot = -COOLDOWN
function spawnWave() {
invaders = []
for (let row = 0; row < ROWS; row++) {
for (let col = 0; col < COLS; col++) {
invaders.push({ x: 40 + col * SPACING_X, y: 60 + row * SPACING_Y, w: INVADER_W, h: INVADER_H, row, alive: true })
}
}
bullets = []
bombs = []
dir = 1
lastStep = now
}
spawnWave()
```let invaders); değerlerini spawnWave veriyor.invaders = [] → önce listeyi boşalt, sonra aynı iç içe döngüyle 45 istilacıyı kur.lastStep = now → ilk yürüyüş adımı dalga göründükten yarım saniye sonra gelsin.spawnWave() → oyun başlarken ilk dalga.let bullets = [] satırından let lastStep = 0 satırına kadar olan kısmı sil; yerine kısa listeyi yaz (sıra
değişti: lastShot en sona geldi).overlaps fonksiyonunun üstüne spawnWave fonksiyonunu yaz.requestAnimationFrame(loop) satırının üstüne spawnWave() yaz. Çalıştır.Beceriler: Fonksiyonlar