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

Yeniden oyna

Ne yapıyoruz

GAME OVER'dan sonra Boşluk yeni oyun başlatsın. newGame bütün başlangıç değerlerini geri koyuyor: gemi, dalga, puan, can, dolum, durum; sonra ilk dalgayı doğuruyor. Oyun da başlarken onu çağırıyor. wave (dalga numarası) şimdilik hep 1; sonraki adımda artacak.

```js
let ship

let lastShot
let wave
let score
let lives
let state // 'playing' or 'over'

function newGame() {
  ship = { x: canvas.width / 2 - SHIP_W / 2, y: SHIP_Y, w: SHIP_W, h: SHIP_H }
  wave = 1
  score = 0
  lives = 3
  lastShot = -COOLDOWN
  state = 'playing'
  spawnWave()
}

  if (event.key === ' ') {
    if (state === 'over') newGame()
    else shoot()
  }

newGame()
```

Ne işe yarıyor

Sıra sende

  1. let ship = { ... } satırını let ship yap. let lastShot = -COOLDOWN … let state = 'playing' satırlarını kısa listeyle değiştir (wave yeni).
  2. spawnWave'in altına newGame fonksiyonunu yaz.
  3. keydown'daki Boşluk satırını iki yollu bloğa çevir.
  4. En alttaki spawnWave() satırını newGame() yap. Çalıştır, kaybet ve Boşluk'a bas.

Beceriler: Oyun durumları, Fonksiyonlar

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