Atölye › Missile Command Tarzı Savunma › 19/35. adım
İşte oyunun kalbi: bir füze bir patlamanın içindeyse yok olur. "İçinde" demek: füzenin patlamanın merkezine uzaklığı, patlamanın şu anki yarıçapından küçük ya da ona eşit.
Patlamalar büyüyüp küçüldüğü için füze hâlâ büyüyen bir patlamaya dalabilir ya da sönmekte olanın yanından sıyrılabilir. Bu yüzden zamanlama önemli.
```js
if (blasts.some((b) => Math.hypot(m.x - b.x, m.y - b.y) <= radius(b))) {
m.done = true
continue
}
```blasts.some((b) => ...) → some ("bazısı") listedeki her patlamayı sırayla sorar; en az biri için cevap
doğruysa sonuç doğrudur.Math.hypot(m.x - b.x, m.y - b.y) → füze ile patlamanın merkezi arasındaki uzaklık.<= radius(b) → o anki yarıçaptan küçük ya da eşitse füze patlamanın içinde.m.done = true → füze yok edildi; döngüden sonra filter onu listeden atar.continue → bu füze için döngünün geri kalanını atla, sıradaki füzeye geç. Yok edilen füze ilerlemez ve
şehre çarpmaz.update içindeki füze döngüsünün en başına, if (stepTowards(m, m.speed)) { satırının üstüne bu if bloğunu
yaz. Çalıştır, bir füzenin önüne ateş et: patlamaya giren füze yok olmalı.
Beceriler: Çarpışma tespiti
← Yere düşen de patlar Zincirleme tepkime →