Atölye › Scorched Earth Tarzı Topçu › 10/23. adım

Bum

Ne yapıyoruz

Merminin zemine değdiği yerde bir patlama olsun: 20 kare boyunca büyüyen turuncu bir ateş topu. O sırada durum 'boom'; kimse ateş edemez. Yandan çıkan mermi atışı patlamasız bitirir.

```js
const BLAST = 30 // explosion radius
let blast // { x, y } while an explosion shows
let timer // frames left to watch the explosion

  blast = null

function explode(x, y) {
  blast = { x, y }
}

  if (state === 'boom' && --timer === 0) {
    blast = null
    state = 'aiming'
  }

  if (hit !== 'away') explode(shell.x, shell.y)
  shell = null
  state = 'boom'
  timer = 20

  if (blast) {
    // The fireball grows as the timer runs down.
    ctx.fillStyle = 'rgba(249, 115, 22, 0.8)'
    ctx.beginPath()
    ctx.arc(blast.x, blast.y, BLAST * (1 - timer / 40), 0, Math.PI * 2)
    ctx.fill()
  }
```

Ne işe yarıyor

Sıra sende

  1. GRAVITY altına BLAST, let shell altına blast ve timer yaz; reset'te shell = null altına blast = null yaz.
  2. update'in üstüne explode yaz.
  3. update'in en üstüne patlama sayacı bloğunu yaz; sonundaki iki satırı dört satırla değiştir.
  4. draw'da mermi bloğunun altına ateş topu bloğunu yaz. Çalıştır ve ateş et.

Beceriler: Oyun durumları, Canvas üzerine çizim

Tüm adımlar

  1. Zemin
  2. Tepeler
  3. İki tank
  4. Namlu
  5. Oyun döngüsü
  6. Nişan al
  7. Açı ve güç
  8. Ateş!
  9. Uçuş
  10. Bum
  11. Kraterler
  12. Düşen tanklar
  13. Hasar
  14. Sırayla
  15. Bilgisayarın atışı
  16. Tanka isabet
  17. Kazan ya da kaybet
  18. Rüzgâr
  19. Bilgisayar nişan alıyor
  20. Fareyle nişan al
  21. Sürükle ve bırak
  22. atan2 tuzağı
  23. Kendin yap: iz