Atölye › Asteroids › 23/41. adım
Şimdi ikisini birleştiriyoruz: her karede her mermi için, değdiği bir kaya var mı diye bakacağız (mermi yarıçapı 2 olan
minik bir daire). Varsa kayayı kırar, mermiyi de "öldürürüz": ömrünü 0 yaparız, hemen sonraki filter satırı onu siler.
```js
for (const bullet of bullets) {
const hit = asteroids.find((asteroid) => hits(bullet, 2, asteroid, asteroid.r))
if (hit) {
breakAsteroid(hit)
bullet.life = 0
}
}
```asteroids.find((asteroid) => hits(...)) → listede şartı tutan ilk öğeyi verir; hiçbiri tutmazsa undefined
(yok).if (hit) → "bir şey bulunduysa". undefined yanlış sayılır.breakAsteroid(hit) → kayayı kır. bullet.life = 0 → mermi bir sonraki satırda silinsin; bir mermi iki kaya kırmasın.update içinde bullets = bullets.filter(...) satırının üstüne döngüyü yaz. Çalıştır ve kayalara ateş et:
büyükler ikiye bölünmeli, küçükler yok olmalı.
Beceriler: Çarpışma tespiti