Atölye › Ay'a İniş › 4/31. adım

Her x için yükseklik

Ne yapıyoruz

Aracın yere değip değmediğini anlamak için zeminin herhangi bir x'teki yüksekliğini bilmemiz gerekecek; yalnız noktalarda değil, aralarında da. İki nokta arasında zemin düz bir çizgi. O hâlde: x'in solundaki ve sağındaki noktayı bul, x'in aradaki yolun ne kadarında olduğuna göre iki yüksekliği karıştır.

Buna doğrusal ara değer bulma (linear interpolation) denir; oyunlarda en çok kullanılan formüllerden biridir: renkleri geçişli değiştirmek, bir şeyi A'dan B'ye yumuşakça kaydırmak hep bununla yapılır.

```js
// The ground between two points is a straight line: find where x is along it.
function groundY(x) {
  const i = Math.max(0, Math.min(ground.length - 2, Math.floor(x / STEP)))
  const t = (x - i * STEP) / STEP
  return ground[i] + (ground[i + 1] - ground[i]) * t
}
```

Ne işe yarıyor

Sıra sende

makeGround fonksiyonunun kapanış }'inin altına bir boş satır bırak ve yorumuyla birlikte groundY fonksiyonunu yaz. Çalıştır: ekran değişmez, kontroller yeşil olmalı.

Beceriler: Hız ve yerçekimi, Fonksiyonlar

Tüm adımlar

  1. Rastgele tepeler
  2. Tepeleri çiz
  3. İniş pisti
  4. Her x için yükseklik
  5. İniş aracı
  6. Kendi ortası etrafında çiz
  7. İki ayak
  8. Oyun döngüsü
  9. Ay yerçekimi
  10. Kenarlardan dolan
  11. Uçuyor mu, uçmuyor mu
  12. Yere değmek
  13. Basılı tuşları hatırla
  14. Eğil
  15. Motor
  16. Titreyen alev
  17. Yakıt
  18. Dokunmatik kontrol
  19. İniş mi, kaza mı
  20. Yeniden uç
  21. İndin mi, düştün mü?
  22. Göstergeler
  23. Bölümler
  24. Puan
  25. Sonraki bölüm ya da yeni oyun
  26. Daha dar pist
  27. Rekor
  28. Parçalara ayrıl
  29. Parçalar düşüp kaybolur
  30. Enkazı çiz
  31. Kendin yap: rüzgâr