Atölye › Space Invaders Tarzı › 10/21. adım

Vurdun!

Ne yapıyoruz

Yaşayan bir istilacıya değen mermi onu yok etsin ve kendisi de harcansın. İki kutunun üst üste binip binmediğini söyleyen klasik bir fonksiyon yazıyoruz: overlaps (çakışıyor mu).

```js
function overlaps(a, b) {
  return a.x < b.x + b.w && a.x + a.w > b.x && a.y < b.y + b.h && a.y + a.h > b.y
}

  for (const bullet of bullets) {
    const hit = invaders.find((invader) => invader.alive && overlaps(bullet, invader))
    if (hit) {
      hit.alive = false
      bullet.y = -100 // used up; removed below
    }
  }
```

Ne işe yarıyor

Sıra sende

  1. alive fonksiyonunun üstüne overlaps fonksiyonunu yaz.
  2. update içinde mermileri hareket ettiren satır ile süzen satırın arasına, bir boş satırdan sonra vuruş döngüsünü yaz.
  3. Çalıştır ve istilacıları vur.

Beceriler: Çarpışma tespiti

Tüm adımlar

  1. Gemi
  2. Oyun döngüsü
  3. Gemiyi oynat
  4. Ekranda kal
  5. Ateş
  6. Mermiler uçuyor
  7. Kısa bir dolum
  8. İstilacılar
  9. Yürüyüş
  10. Vurdun!
  11. Puan
  12. Karşılık veriyorlar
  13. Bombalar düşüyor
  14. Canlar
  15. Oyun bitti
  16. En iyi puan
  17. Dalga bir fonksiyonda
  18. Yeniden oyna
  19. Dalgalar
  20. Gittikçe hızlanan
  21. Kendin yap: fazladan can