Atölye › Tuğla Kırma › 18/39. adım

Daire kutuyla buluşuyor

Ne yapıyoruz

Topun bir tuğlaya değip değmediğini soran bir fonksiyon yazacağız: hitsBrick. Topu da bir kutu gibi düşünebilirdik, ama o zaman top köşelerde gözle görülür biçimde ıskaladığı tuğlaları da kırardı. Doğru yöntem kısa:

  1. Tuğlanın topun merkezine en yakın noktasını bul.
  2. O nokta merkeze bir yarıçaptan yakınsa değiyorlar.

Bu adımda ekranda bir şey değişmeyecek; soruyu soran fonksiyonu hazırlıyoruz.

```js
function hitsBrick(brick) {
  // The point of the brick closest to the ball's center; they touch if it is within one radius.
  const nearestX = clamp(ball.x, brick.x, brick.x + BRICK_W)
  const nearestY = clamp(ball.y, brick.y, brick.y + BRICK_H)
  const dx = ball.x - nearestX
  const dy = ball.y - nearestY
  return dx * dx + dy * dy <= BALL_R * BALL_R
}
```

Ne işe yarıyor

Sıra sende

function update() { satırının üstüne hitsBrick fonksiyonunu yaz; aralarında bir boş satır kalsın. Çalıştır: ekran değişmez, kontroller yeşil olmalı.

Beceriler: Çarpışma tespiti

Tüm adımlar

  1. Oyun alanı ve raket
  2. Tekrar tekrar çiz
  3. Sayıyı sınırlar içinde tut
  4. Fareyi takip et
  5. Başka boyda gösterilen canvas
  6. Hızı olan bir top
  7. Yuvarlak top çiz
  8. Topu yürüt
  9. Yan duvarlardan sek
  10. Tavandan sek
  11. Açık zemin
  12. Raketten sek
  13. Raketle nişan al
  14. Bir sıra tuğla
  15. Tuğlaları çiz
  16. Koca bir duvar: döngü içinde döngü
  17. Her sıraya bir renk
  18. Daire kutuyla buluşuyor
  19. Tuğla kır
  20. Tuğlanın yanına çarpmak
  21. Rakette bekle
  22. Raketle birlikte git
  23. Topu fırlat
  24. Tıkla ya da Boşluk'a bas
  25. Basılı tuşları hatırla
  26. Ok tuşlarıyla sür
  27. Üç can
  28. Ekranda canlar ve bir ipucu
  29. Oyun bitti
  30. Puan tut
  31. Puanı göster
  32. Oyunu kazan
  33. Yeni oyun için tek fonksiyon
  34. Yeniden oyna
  35. Bir avuç parçacık
  36. Kıvılcımlara dönüş
  37. Hareket et, düş ve kaybol
  38. Solarak kaybol
  39. Kendin yap: sağlam tuğlalar