Atölye › Space Invaders Tarzı › 9/21. adım

Yürüyüş

Ne yapıyoruz

İstilacılar birlikte, adım adım yürüsün: her yarım saniyede yana 10 piksel. Dizilişin kenarı ekranın kenarını geçecekse, o adımda yana değil 16 piksel aşağı insinler ve yön değiştirsinler. Klasik istila yürüyüşü.

```js
let dir = 1 // +1 marching right, -1 marching left
let lastStep = 0

function stepInterval() {
  return 500
}

function march() {
  const living = alive()
  const left = Math.min(...living.map((invader) => invader.x))
  const right = Math.max(...living.map((invader) => invader.x + invader.w))
  if ((dir > 0 && right + 10 > canvas.width - 10) || (dir < 0 && left - 10 < 10)) {
    for (const invader of living) invader.y += 16
    dir = -dir
  } else {
    for (const invader of living) invader.x += 10 * dir
  }
}

  if (now - lastStep >= stepInterval()) {
    lastStep = now
    march()
  }
```

Ne işe yarıyor

Sıra sende

  1. İstilacıları kuran döngünün altına dir ve lastStep satırlarını yaz.
  2. shoot fonksiyonunun altına stepInterval ve march fonksiyonlarını yaz.
  3. update'in sonuna, bir boş satırdan sonra adım bloğunu yaz.
  4. Çalıştır: istilacılar yürümeli.

Beceriler: Oyun durumları, Oyun döngüsü

Tüm adımlar

  1. Gemi
  2. Oyun döngüsü
  3. Gemiyi oynat
  4. Ekranda kal
  5. Ateş
  6. Mermiler uçuyor
  7. Kısa bir dolum
  8. İstilacılar
  9. Yürüyüş
  10. Vurdun!
  11. Puan
  12. Karşılık veriyorlar
  13. Bombalar düşüyor
  14. Canlar
  15. Oyun bitti
  16. En iyi puan
  17. Dalga bir fonksiyonda
  18. Yeniden oyna
  19. Dalgalar
  20. Gittikçe hızlanan
  21. Kendin yap: fazladan can