Atölye › Wolfenstein Tarzı 3B Labirent › 8/18. adım

Işın: nereden başlıyor

Ne yapıyoruz

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 }
}
```

Ne işe yarıyor

Sıra sende

Tuş dinleyicilerinin üstüne castRay fonksiyonunu yaz. Çalıştır.

Beceriler: Hız ve yerçekimi, Fonksiyonlar

Tüm adımlar

  1. Harita
  2. Oyuncu
  3. Tavan, zemin ve döngü
  4. Dön
  5. Yürü
  6. Duvar mı?
  7. Duvarda dur, boyunca kay
  8. Işın: nereden başlıyor
  9. Işın: ızgara çizgileri
  10. Işın: duvara kadar yürü
  11. 3B görünüm
  12. Balık gözü yok
  13. Işık ve gölge
  14. Süre
  15. Kaçış!
  16. En iyi süre
  17. Dokunmatik kontrol
  18. Kendin yap: koş