Atölye › Asteroids › 18/41. adım
Kayayı 10 köşeli bir çizgiyle çizeceğiz. i'nci köşe tam turun i / 10'unda durur: 0., 36., 72. derece... Her
köşe merkezden r * scale uzakta (scale şimdilik hep 1). Köşenin yeri geminin köşeleri gibi cos ve sin ile
bulunur.
```js
function drawAsteroid(asteroid) {
ctx.beginPath()
asteroid.shape.forEach((scale, i) => {
const angle = (i / asteroid.shape.length) * Math.PI * 2
const x = asteroid.x + Math.cos(angle) * asteroid.r * scale
const y = asteroid.y + Math.sin(angle) * asteroid.r * scale
if (i === 0) ctx.moveTo(x, y)
else ctx.lineTo(x, y)
})
ctx.closePath()
ctx.stroke()
}
for (const asteroid of asteroids) drawAsteroid(asteroid)
```asteroid.shape.forEach((scale, i) => { ... }) → dizideki her öğe için işi yapar: scale öğenin kendisi, i
sıra numarası (0, 1, ... 9).(i / asteroid.shape.length) * Math.PI * 2 → i'nci köşenin açısı: tam turun onda i'si.x, y → o açıda, r * scale uzaklıktaki nokta.if (i === 0) ctx.moveTo(x, y) → ilk köşede kalemi oraya götür; else ctx.lineTo(x, y) → değilse, çizgi çek.ctx.closePath() → son köşeyi ilk köşeye bağlar.draw içindeki satır → her kayayı çizer. Beyaz çizgi ayarlarından sonra, gemiden önce.function draw() { satırının üstüne drawAsteroid fonksiyonunu yaz; altında bir boş satır kalsın.draw içinde ctx.lineWidth = 2 satırının altına kayaları çizen satırı yaz; altında (drawShip'ten önce) bir boş
satır kalsın.Beceriler: Canvas üzerine çizim, Hız ve yerçekimi
← Dört büyük kaya Pürüzlü kayalar →