Atölye › Angry Birds Tarzı Sapan › 21/47. adım
Sapanı tutmak: nişan alırken sapana 60 pikselden yakın bir yere basarsan sapanı yakalarsın. O andan itibaren
sürüklüyorsun (dragging) ve nişan bastığın noktadan hesaplanıyor.
Uzağa basmak hiçbir şey yapmaz; böylece ekranın başka bir yerine yanlışlıkla dokunmak nişanı bozmaz.
```js
let dragging
dragging = false
canvas.addEventListener('pointerdown', (event) => {
if (state !== 'aiming') return
const point = toCanvas(event)
if (Math.hypot(point.x - SLING.x, point.y - SLING.y) > 60) return
dragging = true
pull(point)
})
```let dragging → sapan şu an tutuluyor mu? true ya da false. reset onu false ile başlatır.canvas.addEventListener('pointerdown', ...) → canvas'a fare tuşu ya da parmak basıldığında çalışır.
(pointer hem fareyi hem dokunmayı kapsar.)if (state !== 'aiming') return → kuş uçarken sapan tutulmaz.const point = toCanvas(event) → basılan yer, canvas pikseliyle.Math.hypot(point.x - SLING.x, point.y - SLING.y) > 60 → sapana uzaklık 60'tan büyükse çık.dragging = true → sapan tutuldu. pull(point) → nişanı bu noktadan hesapla.let aim satırının altına let dragging yaz.reset içinde aim = ... satırının altına dragging = false yaz.function draw() { satırının üstüne pointerdown dinleyicisini yaz.Beceriler: Klavye ve fare girdisi
← Bir noktadan nişana Sürükle ve bırak →