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

İniş pisti

Ne yapıyoruz

Tepelerin arasında inilebilecek düz bir yer olmalı. Rastgele bir yerde yan yana üç noktaya aynı yüksekliği vereceğiz: aralarındaki zemin dümdüz olur. Burası iniş pisti (pad). Pistin yerini bir nesnede tutacağız ve onu yeşil bir çubukla işaretleyeceğiz.

```js
let pad // { x1, x2, y }: the flat landing pad

// Random hills, with one flat stretch: the pad.

  const width = 2
  const start = 1 + Math.floor(Math.random() * (points - 2 - width))
  const y = 250 + Math.random() * 70
  for (let i = start; i <= start + width; i++) ground[i] = y
  pad = { x1: start * STEP, x2: (start + width) * STEP, y }

  ctx.fillStyle = '#22c55e'
  ctx.fillRect(pad.x1, pad.y - 2, pad.x2 - pad.x1, 4)
```

Ne işe yarıyor

Sıra sende

  1. let ground ... satırının altına yorumuyla let pad yaz; function makeGround() { satırının üstüne yorum satırını yaz.
  2. makeGround içinde ground = ... satırının altına pistin beş satırını yaz.
  3. draw içinde ctx.fill() satırının altına yeşil çubuğun iki satırını yaz.
  4. Çalıştır: tepelerin arasında düz bir yer ve üstünde yeşil bir çubuk görmelisin.

Beceriler: Diziler ve nesneler, Canvas üzerine çizim

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