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

Ay'a İniş: Rastgele tepeler

Motoru çalıştır ve iniş aracını eğerek pistin üstüne yumuşakça in. Rastgele arazi, sin ve cos ile bir açı boyunca yerçekimi ve itki, döndürülen çizimler, güvenli inişin kuralları ve işler ters gidince enkaz.

Ne yapıyoruz

Ay'ın yüzeyini bir yükseklik listesi olarak tutacağız: her 40 pikselde bir nokta, her noktanın bir y'si. Noktaları düz çizgilerle birleştirince tepeler çıkacak. Yükseklikler rastgele olacak; her oyunda başka bir arazi.

Bu adımda yalnız listeyi yapıyoruz; ekranda henüz bir şey görünmeyecek.

```js
const canvas = document.getElementById('game')
const ctx = canvas.getContext('2d')

const STEP = 40 // the ground is a line through a point every STEP pixels

let ground // y of the ground at x = 0, STEP, 2 * STEP, ...

function makeGround() {
  const points = canvas.width / STEP + 1
  ground = Array.from({ length: points }, () => 210 + Math.random() * 120)
}

makeGround()
```

Ne işe yarıyor

Sıra sende

Kodu editördeki üç yorum satırının altına yaz; boş satırları da aynen bırak. Çalıştır'a bas: ekran boş kalır, ama alttaki kontroller yeşil olmalı.

Beceriler: Diziler ve nesneler

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