Atölye › Frogger Tarzı Karşıya Geçiş › 6/22. adım
Her yol satırı bir şerit: hangi satır, ne kadar hızlı, arabaları ne kadar uzun ve ne sıklıkta. Bir şeritteki
arabalar eşit aralıkla dizilir ve desen tekrar eder. Tekrarın boyu (period) arabaların aralığının tam katı ve
ekrandan (artı bir araba) geniş olmalı; yoksa arabalar ekranın içinde birden kaybolup belirirdi.
Bu adımda yalnız bilgiyi ve hesabı yazıyoruz; arabaları sonraki adımda çiziyoruz.
```js
// speed is in tiles per frame (negative = to the left), len and spacing in tiles.
const LANES = [
{ row: 7, speed: -0.05, len: 1, spacing: 4, color: '#ef4444' },
{ row: 8, speed: 0.035, len: 2, spacing: 6, color: '#f59e0b' },
{ row: 9, speed: -0.06, len: 1, spacing: 5, color: '#e879f9' },
{ row: 10, speed: 0.03, len: 1, spacing: 4, color: '#38bdf8' },
{ row: 11, speed: -0.025, len: 2, spacing: 5, color: '#f97316' },
]
for (const lane of LANES) lane.offset = 0
// A lane repeats every `period` tiles, which is always wider than the screen plus one car or log.
function period(lane) {
return lane.spacing * Math.ceil((COLS + lane.len) / lane.spacing)
}
```LANES → şeritlerin listesi. Her şerit bir nesne: row satır, speed karede kaç kare kaydığı (eksi: sola), len
arabanın uzunluğu, spacing iki arabanın başları arası (kare), color renk.for (const lane of LANES) lane.offset = 0 → her şeride offset (kayma miktarı) alanı ekle; başta 0.Math.ceil(...) → yukarı yuvarlar: (12 + 1) / 4 = 3,25 → 4. Böylece ilk şerit her 4 × 4 = 16 karede tekrar
eder: 12 karelik ekrandan ve bir arabadan geniş.// Rows from the top ... yorumunun altına yeni yorumu ve LANES listesini yaz.frog satırının altına offset satırını, bir boş satırdan sonra yorumu ve period fonksiyonunu yaz.Beceriler: Diziler ve nesneler