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

En yakın notaya vur

Ne yapıyoruz

Bir tuşa basınca hangi notaya vurulur? O şeritteki, henüz vurulmamış, zamanı şimdiye en yakın notaya.

Bunu bulmak için listeyi baştan sona gezeceğiz ve "şimdiye kadarki en yakın" notayı bir değişkende tutacağız. Bir sınıftaki en uzun öğrenciyi bulmak gibi: herkese tek tek bakarsın, daha uzununu görünce aklındakini değiştirirsin.

```js
function press(lane) {
  lit[lane] = 8
  let closest = null
  for (const n of notes) {
    if (n.hit || n.lane !== lane) continue
    if (!closest || Math.abs(n.time - frame) < Math.abs(closest.time - frame)) closest = n
  }
  if (!closest) return
  closest.hit = true
}
```

Ne işe yarıyor

Sıra sende

press içinde lit[lane] = 8 satırının altına yeni satırları yaz; fonksiyonun son }'si altta kalsın. Çalıştır, oyuna tıkla ve notalar gelirken D, F, J, K'ye bas.

Beceriler: 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ı