Atölye › Angry Birds Tarzı Sapan › 8/47. adım
Şimdi nişanı oyuncu alsın. Tarayıcıya "bir tuşa basılınca bana haber ver" diyeceğiz; buna olay dinlemek (event listener) denir. Kapı zili gibi: çalınca ne yapılacağını önceden söylersin.
MAX_PULL (70) arasında kalır.```js
const MAX_PULL = 70
document.addEventListener('keydown', (event) => {
if (event.key === 'ArrowUp') aim.angle -= 0.03
else if (event.key === 'ArrowDown') aim.angle += 0.03
else if (event.key === 'ArrowRight') aim.pull = Math.min(MAX_PULL, aim.pull + 2)
else if (event.key === 'ArrowLeft') aim.pull = Math.max(10, aim.pull - 2)
else return
event.preventDefault()
})
```document.addEventListener('keydown', (event) => { ... }) → "sayfada bir tuşa basıldığında (keydown) bu
fonksiyonu çalıştır". (event) => { } adı olmayan kısa bir fonksiyondur (ok fonksiyonu); event basılan tuşun
bilgilerini taşır.event.key === 'ArrowUp' → basılan tuş yukarı ok mu? === "tam olarak eşit mi" diye sorar.aim.angle -= 0.03 → açıdan 0.03 çıkar (-= "üstünden çıkar"): açı daha eksi olur, nişan yukarı kalkar.
Aşağı ok += ile ekler.if ... else if ... else if zinciri → yukarıdan aşağı bakar, ilk doğru koşulun işini yapar, gerisini atlar.Math.min(MAX_PULL, aim.pull + 2) → iki sayıdan küçüğünü seçer: çekiş 70'i hiç geçmez.
Math.max(10, aim.pull - 2) → büyüğünü seçer: 10'un altına hiç inmez.else return → başka bir tuşsa fonksiyondan hemen çık.event.preventDefault() → tarayıcının o tuşla yapacağı olağan işi (sayfayı kaydırmak) engeller.const SLING = ... satırının hemen altına const MAX_PULL = 70 yaz.function draw() { satırının üstüne yaz; aralarında bir boş satır kalsın.Beceriler: Klavye ve fare girdisi