Atölye › OutRun Tarzı Yarış › 23/44. adım
Telefonda direksiyon da parmakla olsun: oyunun sol üçte birine dokunmak sola, sağ üçte birine dokunmak sağa çevirsin; nereye dokunursan dokun gaz da verilsin. Ortaya dokunmak sadece gaz.
Bunun için parmağın ekranın hangi üçte birinde olduğunu hesaplayacağız.
```js
// Touch: hold the left or right third to steer; the car accelerates on its own while you touch.
canvas.addEventListener('pointerdown', (event) => {
const rect = canvas.getBoundingClientRect()
const third = ((event.clientX - rect.left) / rect.width) * 3
keys.ArrowUp = true
if (third < 1) keys.ArrowLeft = true
if (third >= 2) keys.ArrowRight = true
})
function stopTouch() {
keys.ArrowUp = keys.ArrowLeft = keys.ArrowRight = false
}
```canvas.getBoundingClientRect() → canvas'ın sayfadaki yerini ve boyunu verir: rect.left sol kenarı, rect.width
eni. (Telefonda canvas ekrana sığsın diye küçülebilir; bu yüzden 480'e güvenmiyoruz.)event.clientX → parmağın yatay konumu.(event.clientX - rect.left) / rect.width → parmak canvas'ın neresinde: sol kenarda 0, sağ kenarda 1. * 3 ile
third 0 ile 3 arasında olur.third < 1 → sol üçte bir: sola çevir. third >= 2 → sağ üçte bir: sağa çevir.keys.ArrowUp = keys.ArrowLeft = keys.ArrowRight = false → üçüne birden false koyar; sağdan sola doğru okunur.// Touch: hold anywhere to accelerate. yorumundan stopTouch fonksiyonunun kapanış }'sine kadar olan kısmı sil.pointerup ve pointercancel satırları aynen kalır.Beceriler: Klavye ve fare girdisi
← Çimen yavaşlatır Virajlı bir pist →