Atölye › Doodle Jump Tarzı Tırmanış › 14/24. adım

Bitmeyen platformlar

Ne yapıyoruz

Altı sabit platform yerine bitmeyen, rastgele platformlar geliyor. fillPlatforms en yüksek platformun üstüne, ekran (ve biraz fazlası) dolana kadar platform ekliyor. Aralarındaki boşluk zorlukla büyüyor ama bir sekişin ulaşabileceğinden asla fazla olmuyor. Ekranın altına düşen platformlar unutuluyor; bellek şişmesin.

```js
// A bounce rises about JUMP * JUMP / (2 * GRAVITY) = 172 pixels, so a gap must stay well below that.
const MAX_GAP = 110

let platforms = [{ x: 170, y: START_Y, w: 60, h: 12 }]
let highest = START_Y // world y of the highest platform so far

// Add platforms above the highest one until the screen (and a little more) is full.
function fillPlatforms() {
  while (highest > cameraY - 100) {
    const d = difficulty(highest)
    const gap = 45 + Math.random() * (MAX_GAP - 45) * (0.4 + 0.6 * d)
    highest -= gap
    platforms.push({ x: Math.random() * (canvas.width - 60), y: highest, w: 60, h: 12 })
  }
}

  fillPlatforms()
  platforms = platforms.filter((p) => p.y < cameraY + canvas.height + 20)

fillPlatforms()
```

Ne işe yarıyor

Sıra sende

  1. START_Y satırının altına yorumu ve MAX_GAP satırını yaz.
  2. Altı platformluk const platforms = [...] listesini tek platformlu let platforms = [...] satırıyla değiştir; cameraY satırının altına highest satırını yaz.
  3. difficulty fonksiyonunun altına yorumu ve fillPlatforms fonksiyonunu yaz.
  4. update içinde kamera satırının altına iki satırı yaz.
  5. En alttaki requestAnimationFrame(loop) satırının üstüne fillPlatforms() yaz.
  6. Çalıştır: sonsuza kadar tırmanabilmelisin.

Beceriler: Döngüler, Oyun durumları

Tüm adımlar

  1. Zıplayan
  2. Tekrar tekrar çiz
  3. Yer çekimi
  4. Sek
  5. Sağa sola yönlendir
  6. Kenarlardan geç
  7. Yarısı burada, yarısı orada
  8. Dokunarak yönlendir
  9. Platformlar
  10. Platformlara kon
  11. Takip eden kamera
  12. Duvardaki çizgiler
  13. Ne kadar zor olsun?
  14. Bitmeyen platformlar
  15. Iskala ve düş
  16. Yeniden oyna
  17. Dokunarak yeniden oyna
  18. Skor yükseklik
  19. En iyi skor
  20. Platform türleri
  21. Hareketli platformlar
  22. Tuzaklar
  23. Kırılıyor!
  24. Kendin yap: yaylar