Atölye › Mario Tarzı Platform › 11/37. adım
En basit hareket: tuşa basınca hemen sabit hızla git. Ama platform kahramanı momentumla daha iyi hissettirir: bir
yöne bastıkça hız azar azar artar, MAX_SPEED'e kadar. Gerçek bir koşucu gibi.
Tuşların durumunu tek bir sayıya çevireceğiz: sağ 1, sol -1, ikisi de değil (ya da ikisi birden) 0.
```js
const ACCEL = 0.5
const MAX_SPEED = 4
function clamp(value, min, max) {
return Math.max(min, Math.min(max, value))
}
const input = (keys.ArrowRight ? 1 : 0) - (keys.ArrowLeft ? 1 : 0)
if (input !== 0) player.vx += input * ACCEL
player.vx = clamp(player.vx, -MAX_SPEED, MAX_SPEED)
player.x += player.vx
```function clamp(value, min, max) → bir sayıyı iki sınır arasında tutar: Math.min(max, value) üst sınırı,
Math.max(min, ...) alt sınırı uygular. clamp(7, -4, 4) → 4, clamp(-9, -4, 4) → −4, clamp(2, -4, 4) → 2.const input = (keys.ArrowRight ? 1 : 0) - (keys.ArrowLeft ? 1 : 0) → koşul işleciyle her tuş 1 ya da 0 olur; farkı
yön verir: yalnız sağ → 1, yalnız sol → −1, hiçbiri ya da ikisi → 0.if (input !== 0) player.vx += input * ACCEL → bir yöne basılıyorsa hıza o yönde 0.5 ekle.player.vx = clamp(player.vx, -MAX_SPEED, MAX_SPEED) → hız −4 ile 4 arasında kalsın.player.x += player.vx → oyuncuyu yatay hızı kadar kaydır.MAX_FALL satırının altına ACCEL ve MAX_SPEED satırlarını yaz.function solidAt(x, y) { satırının üstüne clamp fonksiyonunu yaz; aralarında bir boş satır kalsın.updatePlayer içinde en üste dört satırı yaz, altlarında bir boş satır bırak.Beceriler: Hız ve yerçekimi, Klavye ve fare girdisi
← Hangi tuşlar basılı? Sürtünme →