Atölye › Puzzle Bobble Tarzı Balon Atıcı › 10/31. adım

Ateş!

Ne yapıyoruz

Atış, uçan bir balondur: bir yeri, nişan yönünde bir hızı (karede SPEED piksel) ve yüklü balonun rengi var. Hızı yine cos ve sin ile iki parçaya ayırırız: vx ve vy.

Ateş edince sıradaki balon atıcıya geçer, yeni bir sıradaki seçilir. Havada bir balon varken ikinci atış olmaz. Boşluk ateş eder; fareyi ya da parmağı kaldırmak da: telefonda nişan almak istediğin yere dokunur, bırakırsın.

```js
const SPEED = 12

let shot // the bubble in flight: { x, y, vx, vy, color }, or null

  shot = null

function shoot() {
  if (shot) return
  shot = { x: SHOOTER.x, y: SHOOTER.y, vx: Math.cos(aim) * SPEED, vy: Math.sin(aim) * SPEED, color: loaded }
  loaded = next
  next = pickColor()
}

  else if (event.key === ' ') shoot()

canvas.addEventListener('pointerup', shoot)

  if (shot) drawBubble(shot.x, shot.y, shot.color)
```

Ne işe yarıyor

Sıra sende

  1. SHOOTER satırının altına SPEED yaz.
  2. let next ... satırının altına yorumuyla let shot ... yaz.
  3. reset içinde aim = -Math.PI / 2 satırının altına shot = null yaz.
  4. reset fonksiyonunun altına bir boş satır bırak ve shoot fonksiyonunu yaz.
  5. Tuş dinleyicisinde else return satırının üstüne Boşluk satırını yaz.
  6. pointerdown satırının altına pointerup satırını yaz.
  7. draw içinde sıradaki balonu çizen satırın altına uçan balonu çizen satırı yaz. Çalıştır ve Boşluk'a bas.

Beceriler: Hız ve yerçekimi, Klavye ve fare girdisi

Tüm adımlar

  1. Gece göğü
  2. Bir balon
  3. Hücrelerden bir ızgara
  4. Izgarayı çiz
  5. İç içe oturan balonlar
  6. Atıcı
  7. Yukarı nişan al
  8. Oklarla çevir
  9. İşaretçiyle nişan al
  10. Ateş!
  11. Uç
  12. Duvarlardan sek
  13. Bir şeye değiyor mu?
  14. Izgaraya otur
  15. Daha küçük adımlar
  16. Altı komşu
  17. Taşan boya (flood fill)
  18. Üç tane olunca patla
  19. Düşen balonlar
  20. Asılı kalmayanlar düşsün
  21. Skoru göster
  22. Yalnız işe yarayan renkler
  23. Atışları say
  24. Tavan iniyor
  25. Kazan ya da kaybet
  26. Tehlike çizgisi
  27. Bitiş mesajı
  28. Yeniden oyna
  29. En iyi skor
  30. Noktalı kılavuz
  31. Kendin yap: balonları değiştir