Atölye › Mario Tarzı Platform › 22/37. adım
Bölümdeki o harfleri altın. Zemin döşemeleri bölümde sonsuza kadar kalır, ama altınlar toplanınca kaybolur:
değişen şeylerdir. Bu yüzden oyuncu gibi, loadLevel onları da yazıdan çıkarıp nesnelere çevirecek: her o için
coins dizisine bir altın.
Altınları sarı daire olarak çizeceğiz. Daire çizmek dikdörtgenden biraz farklı: önce bir yol (path) çizilir, sonra içi doldurulur.
```js
let coins
coins = []
if (line[col] === 'o') coins.push({ x: x + 8, y: y + 8, w: 16, h: 16, taken: false })
ctx.fillStyle = '#facc15'
for (const coin of coins) {
if (coin.taken) continue
ctx.beginPath()
ctx.arc(coin.x + coin.w / 2, coin.y + coin.h / 2, 8, 0, Math.PI * 2)
ctx.fill()
}
```let coins → altınların listesi. loadLevel'ın başında coins = [] → her yüklemede boşalt, sonra doldur.if (line[col] === 'o') coins.push({ x: x + 8, y: y + 8, w: 16, h: 16, taken: false }) → döşemenin ortasında (8
piksel içeride) 16×16'lık bir kutu; taken → toplandı mı?ctx.fillStyle = '#facc15' → sarı.if (coin.taken) continue → toplanmış altını atla (bir sonraki adımda toplamaya başlayacağız).ctx.beginPath() → yeni bir şekil başlat.ctx.arc(merkezX, merkezY, yarıçap, 0, Math.PI * 2) → bir yay çizer: son iki sayı başlangıç ve bitiş açısı
(radyan). Math.PI * 2 bir tam tur, yani tam daire. Merkez kutunun ortası: coin.x + coin.w / 2.ctx.fill() → şeklin içini boya.restore'dan önce çizilir: dünyanın parçası oldukları için kamerayla birlikte kayarlar.let player satırının altına let coins yaz.loadLevel içinde ilk satır olarak coins = [] yaz; 'P' satırının altına 'o' satırını yaz.draw içinde ctx.fillStyle = '#dc2626' satırının üstüne altınları çizen satırları yaz ve bir boş satır bırak.Beceriler: Diziler ve nesneler, Canvas üzerine çizim
← Yalnız ekrandakini çiz Topla →