Atölye › Sokoban › 13/29. adım
Oyuncu yürüyecek. Sokoban'da her adım tam bir kare. move (hareket et) fonksiyonu iki sayı alacak: dx (x'e ne
eklenecek) ve dy (y'ye ne eklenecek). Sağa bir adım move(1, 0), yukarı bir adım move(0, -1) (y aşağı doğru
büyüdüğü için yukarı eksi).
Önce gidilecek kareye bakarız: duvarsa adım olmaz.
```js
function move(dx, dy) {
const x = player.x + dx
const y = player.y + dy
if (walls.has(key(x, y))) return
player = { x, y }
}
```const x = player.x + dx ve const y = player.y + dy → gidilecek kare.walls.has(key(x, y)) → kümeye sorar: "bu karede duvar var mı?" true ya da false.return → fonksiyondan hemen çık; altındaki satır çalışmaz, oyuncu yerinde kalır.player = { x, y } → duvar yoksa oyuncu yeni kareye geçer.move fonksiyonunu function draw() { satırının üstüne yaz; arada bir boş satır kalsın. Çalıştır. Klavyeyi
bir sonraki adımda bağlayacağız; kontroller fonksiyonu kendileri çağırıyor.
Beceriler: Oyun durumları, Çarpışma tespiti
← İki bölüm daha Oklarla yürü →