Atölye › Scorched Earth Tarzı Topçu › 20/23. adım

Fareyle nişan al

Ne yapıyoruz

Telefonda ok tuşu yok; göstererek nişan alınabilsin: namludan parmağa (ya da fareye) olan yön açı, uzaklık güç olsun. Math.atan2 bir yönü açıya çeviriyor. Oyun bitince bir dokunuş yeniden oynatsın.

```js
// Point from your tank: the direction is the aim, the distance is the power.
function pointAt(event) {
  const rect = canvas.getBoundingClientRect()
  const x = ((event.clientX - rect.left) * W) / rect.width
  const y = ((event.clientY - rect.top) * H) / rect.height
  const t = tanks[0]
  const angle = Math.atan2(y - (t.y - 8), x - t.x)
  t.angle = angle
  t.power = Math.max(2, Math.min(MAX_POWER, Math.hypot(x - t.x, y - (t.y - 8)) / 12))
}

canvas.addEventListener('pointerdown', (event) => {
  if (state === 'won' || state === 'lost') return reset()
  if (state !== 'aiming' || turn !== 0) return
  pointAt(event)
})
```

Ne işe yarıyor

Sıra sende

draw'ın üstüne yorumuyla pointAt fonksiyonunu ve dokunma dinleyicisini yaz. Çalıştır ve tuvale tıkla.

Beceriler: Klavye ve fare girdisi, Hız ve yerçekimi

Tüm adımlar

  1. Zemin
  2. Tepeler
  3. İki tank
  4. Namlu
  5. Oyun döngüsü
  6. Nişan al
  7. Açı ve güç
  8. Ateş!
  9. Uçuş
  10. Bum
  11. Kraterler
  12. Düşen tanklar
  13. Hasar
  14. Sırayla
  15. Bilgisayarın atışı
  16. Tanka isabet
  17. Kazan ya da kaybet
  18. Rüzgâr
  19. Bilgisayar nişan alıyor
  20. Fareyle nişan al
  21. Sürükle ve bırak
  22. atan2 tuzağı
  23. Kendin yap: iz