Atölye › Wolfenstein Tarzı 3B Labirent › 8/18. adım
Işın izlemenin (raycasting) büyük fikri: ekranın her sütunu için oyuncunun gözünden bir ışın gönderiyor ve çarptığı ilk duvarı buluyoruz. Duvar ne kadar yakınsa o sütunu o kadar uzun çiziyoruz.
Bu adım ışını başlatıyor: yönü, başladığı kare ve ızgarada hangi yöne ilerleyeceği. castRay şimdilik bunları
döndürüyor ki kontrol edebilelim; iki adım sonra gerçek cevabını verecek.
```js
function castRay(angle) {
const dx = Math.cos(angle)
const dy = Math.sin(angle)
let col = Math.floor(player.x)
let row = Math.floor(player.y)
const stepX = dx > 0 ? 1 : -1
const stepY = dy > 0 ? 1 : -1
return { col, row, stepX, stepY }
}
```dx, dy → ışının yönü: bir kare uzunluğunda, yana ve aşağı payları.col, row → ışının başladığı kare, yani oyuncunun karesi. let: ışın ilerledikçe değişecek.stepX → ışın sağa gidiyorsa sonraki sütun +1, sola gidiyorsa -1. stepY → aynısı satırlar için (aşağı +1,
yukarı -1).Tuş dinleyicilerinin üstüne castRay fonksiyonunu yaz. Çalıştır.
Beceriler: Hız ve yerçekimi, Fonksiyonlar
← Duvarda dur, boyunca kay Işın: ızgara çizgileri →