Atölye › Bomberman Tarzı Arena › 13/42. adım
Bomba bir kare ve bir fitildir: fuse, kaç kare (frame) sonra patlayacağı. 150 kare, yaklaşık 2.5 saniye.
dropBomb (bomba bırak) oyuncunun durduğu kareye bir bomba koyar. Ama oyuncu kayarken iki karenin arasında olabilir
(x = 2.4). tileOf en yakın kareyi bulur. Bu adımda bombayı yalnız listeye koyuyoruz; tuşa ve çizime sonra
bağlayacağız.
```js
const FUSE = 150 // frames until a bomb goes off
let bombs // { r, c, fuse }
bombs = []
const tileOf = (m) => ({ r: Math.round(m.y), c: Math.round(m.x) })
function dropBomb() {
const t = tileOf(player)
bombs.push({ r: t.r, c: t.c, fuse: FUSE })
}
```const FUSE = 150 → fitil: 150 kare. let bombs → yerdeki bombalar; reset onu boşaltır.const tileOf = (m) => ({ r: Math.round(m.y), c: Math.round(m.x) }) → Math.round en yakın tam sayıya yuvarlar:
2.4 → 2, 2.6 → 3. Yani bir şeyin bastığı kare. Nesneyi ({ ... }) diye parantez içinde döndürürüz; parantez
olmasa { fonksiyon gövdesi sanılırdı.function dropBomb() {:const t = tileOf(player) → oyuncunun karesi.bombs.push({ r: t.r, c: t.c, fuse: FUSE }) → o kareye tam fitilli bir bomba.const DIRS = ... satırının üstüne FUSE satırını yaz.let held satırının üstüne let bombs yaz.reset içinde held = [] satırının üstüne bombs = [] yaz.const walkable = ... satırının altına tileOf satırını yaz.function update() { satırının üstüne dropBomb fonksiyonunu yaz.Beceriler: Oyun durumları
← Yürü Boşluk bırakır, bomba görünür →