Atölye › Scorched Earth Tarzı Topçu › 3/23. adım
İki tank: seninki (mavi) solda, bilgisayarınki (kırmızı) sağda. Her tank yerini, canını (hp) ve nasıl nişan
aldığını (angle açı, power güç) hatırlıyor. Zeminin üstünde duruyorlar: groundAt(x) herhangi bir x'te zeminin
yüksekliğini söylüyor; sütunların arasında ya da tuvalin dışında bile. reset yeni bir oyun kuruyor.
```js
let tanks // [you, the computer]: { x, y, hp, angle, power, color }
const groundAt = (x) => ground[Math.max(0, Math.min(W - 1, Math.round(x)))]
function reset() {
makeGround()
tanks = [
{ x: 70, y: 0, hp: 100, angle: -Math.PI / 4, power: 8, color: '#2563eb' },
{ x: W - 70, y: 0, hp: 100, angle: (-3 * Math.PI) / 4, power: 8, color: '#dc2626' },
]
for (const t of tanks) t.y = groundAt(t.x)
}
for (const t of tanks) {
ctx.fillStyle = t.color
ctx.fillRect(t.x - 10, t.y - 8, 20, 8)
}
reset()
```groundAt(x) → x'i en yakın sütuna yuvarlar (Math.round) ve 0 ile W − 1 arasında tutar: her x güvenli.x, y'si alt kenarının ortası: 20×8'lik gövde 10 piksel sola ve 8 piksel yukarı çizilir.y: 0 → önce 0; hemen alttaki satır her tankı zemine oturtur.angle: -Math.PI / 4 → −45°: sağ üste. (-3 * Math.PI) / 4 → −135°: sol üste. Tuvalde yukarı eksi yön.reset() → en alttaki makeGround() yerine: zemini de o kuruyor.let ground satırının altına tanks yaz.makeGround'un altına groundAt ve reset yaz.draw'ın sonuna tankları çizen döngüyü yaz; en alttaki makeGround() satırını reset() yap. Çalıştır.Beceriler: Canvas üzerine çizim, Diziler ve nesneler