Atölye › Hafıza Kartları › 13/25. adım
Tıklayarak oynayacağız, ama önce şu soruyu cevaplamalıyız: bir noktanın altında hangi kart var? Kartların arasında boşluklar var; boşluğa tıklamak hiçbir şey yapmamalı.
Bu yüzden her karta tek tek sorarız: "bu nokta senin içinde mi?" Buna isabet testi (hit testing) denir; canvas'taki her tıklanabilir şey (düğmeler, menüler) böyle çalışır.
```js
function cardAt(x, y) {
return cards.find((card) => {
const left = cardX(card)
const top = cardY(card)
return x >= left && x < left + CARD && y >= top && y < top + CARD
})
}
```cards.find((card) => { ... }) → kartları sırayla gezer; içteki fonksiyon true döndüren ilk kartı verir.
Hiçbiri tutmazsa sonuç undefined: "hiçbir şey".const left = cardX(card), const top = cardY(card) → kartın sol ve üst kenarı.x >= left && x < left + CARD → >= "büyük ya da eşit", < "küçük": nokta sol kenarda ya da sağında, ama sağ
kenarın solunda.&& → "ve": dört koşulun hepsi doğru olmalı; biri bile yanlışsa false.{ } içine yazılır ve cevap return ile verilir.cardY fonksiyonunun altına bir boş satır bırak ve cardAt fonksiyonunu yaz. Çalıştır.
Beceriler: Diziler ve nesneler, Klavye ve fare girdisi
← Adil bir karıştırma Tıkla, kartı çevir →