Atölye › Mario Tarzı Platform › 19/37. adım

Takip eden kamera

Ne yapıyoruz

Bölüm 2048 piksel genişliğinde, ekran ise 640. Sağa koşunca oyuncu ekrandan çıkıyor. Bir kamera lazım: dünyaya açılan ve oyuncuyu izleyen bir pencere.

Kamera tek bir sayı: camera → ekranın sol kenarının dünyadaki x'i. Oyuncuyu ekranın ortasında tutmak için onu her karede hesaplayacağız.

İşin güzel tarafı: hiçbir şeyin çizimini değiştirmeyeceğiz. Dünyayı çizmeden önce bütün canvas'ı camera kadar sola kaydıracağız, çizimden sonra geri alacağız. Her şey kendi dünya koordinatında çizilir; yalnız bakış açısı kayar.

```js
let camera

  camera = 0

  camera = player.x + player.w / 2 - canvas.width / 2

  ctx.save()
  ctx.translate(-Math.round(camera), 0)

  ctx.restore()
```

Ne işe yarıyor

Sıra sende

  1. let coyote satırının üstüne let camera yaz.
  2. loadLevel içinde coyote = 0 satırının üstüne camera = 0 yaz.
  3. update içinde updatePlayer() satırının altına bir boş satır bırak ve camera satırını yaz.
  4. draw içinde gökyüzü fillRect satırının altına bir boş satır bırak; ctx.save() ve ctx.translate(...) yaz.
  5. draw'ın sonunda, oyuncunun fillRect satırının altına ctx.restore() yaz.
  6. Çalıştır ve sağa koş.

Beceriler: Canvas üzerine çizim, Oyun durumları

Tüm adımlar

  1. Gökyüzü
  2. Metinden bir bölüm
  3. Döşemeleri çiz
  4. Ne katı?
  5. Kutu bir şeye değiyor mu?
  6. Başlangıcı bul
  7. Oyuncuyu çiz
  8. Yerçekimi
  9. Döşemelere inmek
  10. Hangi tuşlar basılı?
  11. Hızlan
  12. Sürtünme
  13. Duvarlar
  14. Zıpla
  15. Kafanı çarp
  16. Kısa zıplamalar
  17. Birkaç karelik tolerans
  18. Coyote time
  19. Takip eden kamera
  20. Uçlarda dur
  21. Yalnız ekrandakini çiz
  22. Altınlar
  23. Topla
  24. Say: ekran ve dünya
  25. Düşmanlar
  26. Yürüyen düşmanlar
  27. Kenardan düşme
  28. Canlar ve yeniden başlamak
  29. Çukura düşmek
  30. Düşmanlar incitir
  31. Ez!
  32. Ezilen düşman gider
  33. Oyun bitti
  34. Yeniden oyna
  35. Bayrak
  36. Bayrağa ulaş
  37. Kendin yap: zıplama tamponu