Atölye › OutRun Tarzı Yarış › 7/44. adım
Şimdi deneme parçasının yerine gerçek yolu çizeceğiz. Kameranın önündeki 100 parçanın her biri için yakın ve uzak
kenarı project ile hesaplayıp bir yamuk boyayacağız. Uç uca eklenen yamuklar ufka kadar uzanan bir yol olur.
Yakındaki parçalar kocaman (hatta ekrandan taşar), uzaktakiler ince bir çizgi kadar; ama hepsi aynı 200 birimlik parça. Perspektif bu.
```js
const DRAW = 100 // segments drawn
// Work out where every segment is on screen, from near to far.
const base = Math.floor(position / SEG)
for (let i = 0; i < DRAW; i++) {
const z = (base + i) * SEG - position
const near = project(0, -CAMERA_HEIGHT, z)
const far = project(0, -CAMERA_HEIGHT, z + SEG)
if (z > 0) quad('#6b7280', near.x, near.y, near.w, far.x, far.y, far.w)
}
```DRAW = 100 → ekrana kaç parça çizeceğimiz. Daha uzağı zaten ufukta nokta kadar kalır.Math.floor(position / SEG) → kameranın kaçıncı parçada olduğu. Math.floor aşağı yuvarlar: 3.7 → 3. Şimdi
position 0, yani base de 0; araba ilerleyince büyüyecek.for (let i = 0; i < DRAW; i++) → 100 kez: öndeki 1., 2., 3.... parça için.z = (base + i) * SEG - position → o parçanın başlangıcının kameraya uzaklığı.near ve far → parçanın yakın (z) ve uzak (z + SEG) kenarının ekrandaki yeri.if (z > 0) quad(...) → sadece kameranın önündeki parçayı çiz. z 0 ya da eksiyse parça kameranın altında ya
da arkasında kalmıştır (üstelik DEPTH / 0 sonsuz olur).const DEPTH = ... satırının altına DRAW satırını yaz.draw içindeki üç deneme satırını (const near, const far, quad(...)) sil. Yerine yorum satırını, base
satırını ve for döngüsünü yaz.Beceriler: Döngüler, Canvas üzerine çizim
← Pistte neredeyiz? Şeritler →