Atölye › Kule Savunması › 27/42. adım
Kule savunmasının bir ritmi var: önce kur, sonra savun, sonra yine kur. Bunu bir durum (state) değişkeniyle tutuyoruz:
'building' (kurma): düşman gelmez, istediğin kadar düşünüp kule kurarsın,'wave' (dalga): düşmanlar gelir.startWave (dalgayı başlat) bir sonraki dalgayı gönderir: 6 + 2 × dalga düşman. 1. dalga 8, 2. dalga 10... Bu adımda
dalgayı başlatacak bir düğme henüz yok; onu sırayla ekleyeceğiz.
```js
let wave
let state // 'building', 'wave' or 'over'
wave = 0
toSpawn = 0
spawnIn = 0
state = 'building'
function startWave() {
wave += 1
toSpawn = 6 + wave * 2
spawnIn = 0
state = 'wave'
}
if (state === 'wave' && toSpawn > 0) {
```let wave → kaçıncı dalga; reset içinde 0. let state → oyunun durumu; reset içinde 'building'. Yorumda
bir üçüncü durum da var ('over'); onu sonra ekleyeceğiz.toSpawn = 0 → oyun başında gelecek düşman yok (eski 30'un yerine).function startWave() { → wave += 1 (sonraki dalga), toSpawn = 6 + wave * 2, spawnIn = 0 (ilki hemen gelsin),
state = 'wave'.state === 'wave' && toSpawn > 0 → düşmanlar yalnız bir dalga sırasında çıkar.let toSpawn satırının üstüne let wave, let spawnIn satırının altına let state yaz.reset içinde toSpawn = 30 satırının üstüne wave = 0 yaz; toSpawn = 30'u toSpawn = 0 yap; spawnIn = 0
satırının altına state = 'building' yaz.pointAt fonksiyonunun altında bir boş satır bırakıp startWave'i yaz.update içinde düşman çıkaran if (toSpawn > 0) { satırını if (state === 'wave' && toSpawn > 0) { yap.Beceriler: Oyun durumları
← Can çubukları Boşluk dalgayı başlatır →