Atölye › Ay'a İniş › 18/31. adım
Telefonda ok tuşu yok. Ekranı üçe bölelim: sol üçte bire dokunmak sola eğer, sağ üçte bire dokunmak sağa eğer, ortaya dokunmak motoru yakar. Parmak kalkınca durur.
İşin güzel yanı: keys not defterine aynı adları yazıyoruz. update notun klavyeden mi dokunuştan mı geldiğini bilmez
ve bilmesi de gerekmez.
```js
// Touch: hold the left third to turn left, the right third to turn right, the middle for the engine.
canvas.addEventListener('pointerdown', (event) => {
const rect = canvas.getBoundingClientRect()
const third = ((event.clientX - rect.left) / rect.width) * 3
keys[third < 1 ? 'ArrowLeft' : third < 2 ? 'ArrowUp' : 'ArrowRight'] = true
})
function stopTouch() {
keys.ArrowLeft = false
keys.ArrowUp = false
keys.ArrowRight = false
}
canvas.addEventListener('pointerup', stopTouch)
canvas.addEventListener('pointercancel', stopTouch)
```(event.clientX - rect.left) / rect.width → dokunuşun canvas'ın solundan ne kadar içeride olduğu, 0 ile 1 arası
(ekrandaki boyuna oranla; canvas büyütülse de doğru).* 3 → 0 ile 3 arası: 1'den küçükse sol, 2'den küçükse orta, değilse sağ üçte bir.third < 1 ? 'ArrowLeft' : third < 2 ? 'ArrowUp' : 'ArrowRight' → iki ? : art arda: üç addan birini seçer. O
ad keys içinde true olur, sanki o tuş basılıymış gibi.function stopTouch() → üç "tuşu" da bırakır.pointerup (parmak kalktı) ve pointercancel (dokunuş iptal oldu, örneğin bir bildirim geldi) → ikisinde de
stopTouch çalışır.Dokunmatik kodunu yorum satırıyla birlikte function burning() { satırının üstüne yaz; altında bir boş satır
kalsın. Çalıştır: farenin tuşunu canvas'ın sol, orta ya da sağ kısmında basılı tutarak dene.
Beceriler: Klavye ve fare girdisi