Atölye › OutRun Tarzı Yarış › 5/44. adım
Tek parça yol olmaz. Pist, uç uca dizilmiş 200'er birimlik 800 kısa parçadan (segment) oluşan bir liste olacak.
İleride her parçaya bir kıvrım (curve) bilgisi de vereceğiz; şimdilik hepsi düz.
Bu adımda ekran değişmez: pisti bellekte kuruyoruz, çizimini sonraki adımlarda yapacağız.
```js
const SEG = 200 // length of one road segment, in world units
let segments // the track: { curve } for each segment
let trackLength
// The track is made of stretches: `count` segments bending by `curve` (0 is straight, + right, - left).
function buildTrack() {
segments = []
const add = (count, curve) => {
for (let i = 0; i < count; i++) segments.push({ curve })
}
add(800, 0) // straight for now
trackLength = segments.length * SEG
}
buildTrack()
```SEG = 200 → bir parçanın uzunluğu.let segments ve let trackLength → değeri sonra verilecek iki değişken: parça listesi ve pistin toplam uzunluğu.segments = [] → boş bir liste (dizi, array).const add = (count, curve) => { ... } → ok fonksiyonu: function'ın kısa yazılışı. => "şunu yap" diye
okunur. add(800, 0) "800 parça ekle, kıvrımları 0" demek.for (let i = 0; i < count; i++) → döngü: i 0'dan başlar, count'tan küçük olduğu sürece tekrarlar, her
turda 1 artar (i++). Yani tam count kez.segments.push({ curve }) → listenin sonuna bir parça ekler. { curve }, { curve: curve }'nin kısası:
kıvrım bilgisini taşıyan küçük bir nesne.trackLength = segments.length * SEG → length listedeki eleman sayısı: 800 × 200 = 160 000.buildTrack() → fonksiyonu çağırıp pisti kurar.const H = canvas.height satırının altına SEG satırını yaz.const DEPTH = ... satırının altına bir boş satır bırak; iki let satırını, bir boş satırdan sonra yorum satırını
ve buildTrack fonksiyonunu yaz.requestAnimationFrame(loop) satırının üstüne buildTrack() yaz.Beceriler: Diziler ve nesneler, Döngüler
← Bir parça yol Pistte neredeyiz? →