Atölye › Kule Savunması › 41/42. adım
Topun asıl gücü: mermisi hedefe çarptığında çevresindeki düşmanlar da yara alır. Hedefin yerinden splash
mesafesi içindeki her düşman hasar görür. Okların splash değeri 0 olduğu için onlar yine yalnız hedefi vurur; aynı
kod iki kuleye de uyar.
```js
const center = pointAt(bullet.target.d)
for (const e of enemies) {
const p = pointAt(e.d)
const close = e === bullet.target || Math.hypot(p.x - center.x, p.y - center.y) <= kind.splash
if (close) e.hp -= kind.damage
}
```const center = pointAt(bullet.target.d) → hedefin haritadaki yeri: patlamanın merkezi.for (const e of enemies) → her düşmana bak.Math.hypot(p.x - center.x, p.y - center.y) → iki nokta arasındaki kuş uçuşu mesafe (Pisagor: √(dx² + dy²)).e === bullet.target || ... <= kind.splash → düşman hedefin kendisiyse ya da merkeze splash kadar
yakınsa close doğru olur.if (close) e.hp -= kind.damage → yakınsa hasar al. Okta splash 0: mesafe 0'dan küçük eşit olamayacağı için
yalnız hedefin kendisi vurulur.hit fonksiyonundaki bullet.target.hp -= kind.damage satırını sil; yerine yeni satırları yaz. Çalıştır, top kur ve sık gelen dalgaları izle.
Beceriler: Çarpışma tespiti
← Kule düğmeleri Kendin yap: kule sat →