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

Ah

Ne yapıyoruz

3 kalbin var. Sana değen düşman bir tane götürsün. Sonra 60 kare boyunca güvendesin; sen ve düşman birbirinden sekersiniz, yoksa aynı düşman üst üste vururdu.

```js
let hearts
let hurt // frames the player cannot be hurt again

  hearts = 3
  hurt = 0

  if (hurt > 0) hurt -= 1

    if (e.hp > 0 && hurt === 0 && overlap(box(e), box(player))) {
      hearts -= 1
      hurt = 60
      // Both bounce apart, so an enemy cannot stay stuck on top of you.
      const ax = Math.sign(player.x - e.x) || 1
      const ay = Math.sign(player.y - e.y)
      const horizontal = Math.abs(player.x - e.x) >= Math.abs(player.y - e.y)
      for (let i = 0; i < 6; i++) move(player, horizontal ? ax * 4 : 0, horizontal ? 0 : ay * 4)
      e.knock = 10
      e.kx = horizontal ? -ax * 3 : 0
      e.ky = horizontal ? 0 : -ay * 3
    }
```

Ne işe yarıyor

Sıra sende

  1. const held satırının üstüne hearts ve hurt, reset'te swing = 0 satırının üstüne iki satır yaz.
  2. update'in en üstüne hurt geri sayımını ve bir boş satır yaz.
  3. Düşman döngüsünde kılıç bloğunun altına dokunma bloğunu yaz. Çalıştır ve bir düşmana değ.

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

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