Atölye › Zelda Tarzı Zindan › 15/22. adım

Anahtarlar ve kalpler

Ne yapıyoruz

Bir anahtarın k üstüne yürümek onu alsın; bir kalbin h üstüne yürümek bir kalp geri versin (en çok 3). Kare zemine dönsün. Anahtarlar sarı, kalpler kırmızı; üst şerit anahtarlarını saysın.

```js
let keysHeld

  keysHeld = 0

  // Things on the tile under the middle of the player.
  const col = Math.floor(cx / T)
  const row = Math.floor(cy / T)
  const here = tiles[row][col]
  if (here === 'k' || here === 'h') {
    if (here === 'k') keysHeld += 1
    else hearts = Math.min(3, hearts + 1)
    tiles[row][col] = '.'
  }

      if (ch === 'k') {
        ctx.fillStyle = '#eab308'
        ctx.fillRect(x + 10, y + 8, 12, 16)
      }
      if (ch === 'h') {
        ctx.fillStyle = '#e11d48'
        ctx.fillRect(x + 9, y + 9, 14, 14)
      }

  ctx.fillStyle = 'white'
  ctx.font = 'bold 16px sans-serif'
  ctx.textAlign = 'left'
  ctx.fillText('Keys ' + keysHeld, 100, 30)
```

Ne işe yarıyor

Sıra sende

  1. let hearts altına let keysHeld, reset'te hearts = 3 altına keysHeld = 0 yaz.
  2. update'te oda geçiş bloğunun altına, bir boş satırdan sonra alma bloğunu yaz.
  3. Kare çiziminde kapı bloğunun altına anahtar ve kalp bloklarını; kalp döngüsünün altına anahtar yazısını yaz.
  4. Çalıştır ve odadaki kalbe yürü.

Beceriler: Oyun durumları, Çarpışma tespiti

Tüm adımlar

  1. Bir oda
  2. Kahraman
  3. Oyun döngüsü
  4. Yürü
  5. Duvarlar
  6. Dokunmatik ped
  7. Sonraki oda
  8. Kılıç
  9. Düşmanlar
  10. Vur!
  11. Peşine düşüyorlar
  12. Dolaşıyorlar
  13. Ah
  14. Yanıp sönme ve kalpler
  15. Anahtarlar ve kalpler
  16. Hatırlayan dünya
  17. Kilitli kapı
  18. Süre
  19. Oyun bitti
  20. Çıkış merdiveni
  21. En iyi süre
  22. Kendin yap: temizlenen odalar