Atölye › Ritim Şeritleri › 34/35. adım
Telefonda klavye yok; şeritlerin kendisi düğme olsun: bir şeridin herhangi bir yerine dokunmak ona basmak
demek. Dokunuş da klavyeyle aynı press(lane)'i çağıracak; böylece zamanlama, puan ve kombo her cihazda aynı.
Şarkı bittikten sonra bir dokunuş yeniden başlatsın.
```js
// On a touch screen, each lane is its own big button.
canvas.addEventListener('pointerdown', (event) => {
if (state === 'done') return reset()
const rect = canvas.getBoundingClientRect()
const x = ((event.clientX - rect.left) * canvas.width) / rect.width
const lane = Math.floor((x - LEFT) / LANE_W)
if (lane >= 0 && lane < LANES) press(lane)
})
ctx.fillText('Space or tap to play again', canvas.width / 2, 318)
```canvas.addEventListener('pointerdown', ...) → canvas'a fareyle ya da parmakla basıldığında.if (state === 'done') return reset() → şarkı bittiyse yeniden başlat.canvas.getBoundingClientRect() → canvas'ın ekrandaki kutusu: left (sol kenarı), width (ekranda göründüğü
eni).((event.clientX - rect.left) * canvas.width) / rect.width → event.clientX dokunuşun sayfadaki yeri. Önce
canvas'ın sol kenarını çıkarırız, sonra ekran pikselini canvas pikseline çeviririz (telefonda canvas küçültülmüş
olabilir).Math.floor((x - LEFT) / LANE_W) → hangi şerit: soldaki boşluğu çıkar, şerit enine böl, aşağı yuvarla.
x = 150 → (150 − 60) / 70 = 1.28 → 1.if (lane >= 0 && lane < LANES) press(lane) → yalnız dört şeritten birine dokunulduysa bas; kenar boşluklarına
dokunmak hiçbir şey yapmaz.function draw() { satırının üstüne yorum satırını ve pointerdown dinleyicisini yaz; altında bir boş satır
kalsın.'Space or tap to play again' yap.Beceriler: Klavye ve fare girdisi
← En iyi puan Kendin yap: hız ayarı →