Atölye › Bomberman Tarzı Arena › 32/42. adım
Şimdi düşmanlarla savaş: alevde kalan düşman ölür, ama bir düşmana değmek bir cana mal olur.
"Değmek" kareler arasında değil, gerçek konumlar arasında ölçülür: aradaki düz uzaklık 0.6 kareden azsa değmişsin demektir. Böylece yan karede kayıp giden bir düşmanın yanından sıyrılabilirsin.
```js
enemies = enemies.filter((e) => !inFlames(e))
else if (inFlames(player) || enemies.some((e) => Math.hypot(e.x - player.x, e.y - player.y) < 0.6)) hurt()
```enemies.filter((e) => !inFlames(e)) → alevde olmayan düşmanları tutar; alevdekiler gider.Math.hypot(e.x - player.x, e.y - player.y) → iki nokta arasındaki düz uzaklık (Pisagor: √(dx² + dy²)).enemies.some(... < 0.6) → 0.6 kareden yakın en az bir düşman var mı?inFlames(player) || ... → alevdeysen ya da bir düşmana değiyorsan can kaybet. Hâlâ else içinde: güvendeyken
ikisi de zarar vermez.update içinde flames = flames.filter(...) satırının altına düşman filter satırını yaz.else if (inFlames(player)) hurt() satırındaki koşula || enemies.some(...) kısmını ekle.Beceriler: Çarpışma tespiti
← Geri dönmek yok Bütün düşmanlar gitti →