Atölye › Ay'a İniş › 19/31. adım
Yere değmek ancak her şey yerindeyse bir iniştir:
Biri bile tutmazsa kaza. Sınırları tek bir nesnede, SAFE'te topluyoruz: kurallar tek bir yerde durur.
```js
const SAFE = { vy: 1.2, vx: 0.6, angle: 0.2 } // the most a landing may have
function touchdown() {
const onPad = lander.x - FEET >= pad.x1 && lander.x + FEET <= pad.x2
const gentle = lander.vy <= SAFE.vy && Math.abs(lander.vx) <= SAFE.vx && Math.abs(lander.angle) <= SAFE.angle
if (onPad && gentle) {
state = 'landed'
lander.y = pad.y - 10
return
}
state = 'crashed'
}
```const SAFE = { vy: 1.2, vx: 0.6, angle: 0.2 } → bir inişin en fazla sahip olabileceği değerler.onPad → sol ayak pistin başından sağda ve sağ ayak pistin sonundan solda mı? İki ayak da pistte.gentle ("yumuşak") → düşme hızı, yana hız ve eğim hepsi sınırın içinde mi?Math.abs(...) → işareti yok sayar: sola ya da sağa kaymak, sola ya da sağa eğilmek aynı sayılır.if (onPad && gentle) → ikisi de doğruysa indi: state = 'landed' ve araç tam pistin üstüne oturtulur
(pad.y - 10, çünkü ayaklar ortanın 10 piksel altında). return ile çık.state = 'crashed'.const FEET ... satırının üstüne SAFE sabitini yaz.touchdown fonksiyonunun içindeki tek satırın üstüne onPad, gentle ve if bloğunu yaz;
state = 'crashed' en sonda kalsın.Beceriler: Çarpışma tespiti, Oyun durumları
← Dokunmatik kontrol Yeniden uç →