Atölye › Ay'a İniş › 3/31. adım
Tepelerin arasında inilebilecek düz bir yer olmalı. Rastgele bir yerde yan yana üç noktaya aynı yüksekliği vereceğiz: aralarındaki zemin dümdüz olur. Burası iniş pisti (pad). Pistin yerini bir nesnede tutacağız ve onu yeşil bir çubukla işaretleyeceğiz.
```js
let pad // { x1, x2, y }: the flat landing pad
// Random hills, with one flat stretch: the pad.
const width = 2
const start = 1 + Math.floor(Math.random() * (points - 2 - width))
const y = 250 + Math.random() * 70
for (let i = start; i <= start + width; i++) ground[i] = y
pad = { x1: start * STEP, x2: (start + width) * STEP, y }
ctx.fillStyle = '#22c55e'
ctx.fillRect(pad.x1, pad.y - 2, pad.x2 - pad.x1, 4)
```const width = 2 → pist 2 aralık (80 piksel), yani 3 nokta genişliğinde.const start = 1 + Math.floor(Math.random() * (points - 2 - width)) → pistin ilk noktası: 1'den başlayan rastgele
bir sıra numarası. Math.floor aşağı yuvarlar. Sınır, pistin sağ kenara taşmamasını sağlar.const y = 250 + Math.random() * 70 → pistin yüksekliği: 250 ile 320 arası.for (let i = start; i <= start + width; i++) ground[i] = y → start'tan start + width'e kadar (dahil) her
noktanın yüksekliğini aynı y yap. ground[i] = y listenin i. elemanını değiştirir.pad = { x1: ..., x2: ..., y } → pistin sol ve sağ ucu piksel olarak (nokta numarası × 40) ve yüksekliği.pad.y - 2 onu zemin çizgisine ortalar.let ground ... satırının altına yorumuyla let pad yaz; function makeGround() { satırının üstüne yorum
satırını yaz.makeGround içinde ground = ... satırının altına pistin beş satırını yaz.draw içinde ctx.fill() satırının altına yeşil çubuğun iki satırını yaz.Beceriler: Diziler ve nesneler, Canvas üzerine çizim
← Tepeleri çiz Her x için yükseklik →