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

Uçuş

Ne yapıyoruz

Her karede yerçekimi aşağı hıza biraz ekliyor, mermi de hızı kadar ilerliyor. Gerçek bir eğri için bu kadarı yetiyor. fly bir mermiyi bir kare ilerletip neye çarptığını söylüyor: yandan çıktıysa 'away', zemine değdiyse 'ground', hiçbir şeye değmediyse null. Mermi bir şeye çarpınca kaybolur ve yeniden nişan alabilirsin.

```js
const GRAVITY = 0.15

// One frame of flight: gravity pulls down. Returns what it hit, or null.
function fly(s) {
  s.vy += GRAVITY
  s.x += s.vx
  s.y += s.vy
  if (s.x < 0 || s.x >= W) return 'away'
  if (s.y >= groundAt(s.x)) return 'ground'
  return null
}

function update() {
  if (state !== 'flying') return
  const hit = fly(shell)
  if (!hit) return
  shell = null
  state = 'aiming'
}

  update()
```

Ne işe yarıyor

Sıra sende

  1. H satırının altına GRAVITY yaz.
  2. aimBy'ın üstüne yorumuyla fly fonksiyonunu ve update fonksiyonunu yaz.
  3. loop içinde draw()'ın üstüne update() yaz. Çalıştır ve ateş et.

Beceriler: Hız ve yerçekimi, Oyun döngüsü

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