Atölye › Ritim Şeritleri › 7/35. adım

Yazıdan notalara

Ne yapıyoruz

Oyunun işine yarayan yazı değil, notalar. Çizelgedeki her 1'i bir notaya çevireceğiz. Her nota üç bilgi taşır:

Zamanı "kare" (frame) olarak sayacağız. Ekran saniyede 60 kez yenilenir; her yenilenme bir kare. Satırlar 15 karede bir gelir (saniyenin dörtte biri: dakikada 120 vuruşluk bir şarkıda sekizlik nota). İlk notadan önce oyuncuya 2 saniye (120 kare) hazırlanma payı veririz.

```js
const STEP = 15 // frames between rows of the chart (an eighth note at 120 beats a minute)
const LEAD = 120 // frames before the first row reaches the line

let notes // { lane, time, hit }

function reset() {
  notes = []
  CHART.forEach((row, i) => {
    for (let lane = 0; lane < LANES; lane++) if (row[lane] === '1') notes.push({ lane, time: LEAD + i * STEP, hit: false })
  })
}

reset()
draw()
```

Ne işe yarıyor

Sıra sende

  1. const HIT_Y = ... satırının altına STEP ve LEAD satırlarını yaz.
  2. CHART listesinin kapanan ] satırının altında bir boş satır bırak; let notes satırını, bir boş satır daha ve reset fonksiyonunu yaz.
  3. En alttaki draw() satırının üstüne reset() yaz.
  4. Çalıştır: ekran değişmez, ama notalar artık hafızada hazır.

Beceriler: Diziler ve nesneler, Döngüler

Tüm adımlar

  1. Notalar için bir sahne
  2. İlk şerit
  3. Döngüyle dört şerit
  4. Vuruş çizgisi
  5. Çizen bir fonksiyon
  6. Yazı olarak şarkı
  7. Yazıdan notalara
  8. Yeri saat belirler
  9. Notaları çiz
  10. İşleyen bir saat
  11. Oyun döngüsü
  12. Yanan şeritler
  13. Şeritlere tuşlar
  14. Tuşları göster
  15. En yakın notaya vur
  16. Zamana yeterince yakın
  17. Bir basış, bir vuruş
  18. Ekranda bir mesaj
  19. Hit mesajı
  20. Mesaj gitsin
  21. Kusursuz ya da iyi
  22. Say
  23. Kaçan notalar
  24. Puan
  25. Art arda vuruşlar
  26. Çarpan
  27. Şarkı biter
  28. Saati durdur
  29. Doğruluk
  30. Not
  31. Sonuçlar
  32. Yeniden oyna
  33. En iyi puan
  34. Dokunulabilen şeritler
  35. Kendin yap: hız ayarı