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

Işın: ızgara çizgileri

Ne yapıyoruz

Işın ızgara çizgilerini birer birer geçer. Işın boyunca iki tür uzaklık lazım: bir sonraki dikey çizgiye (sonraki sütuna) ve bir sonraki yatay çizgiye (sonraki satıra) ne kadar var, ve iki dikey (ya da iki yatay) çizgi arası ne kadar.

```js
// How far along the ray one whole tile across (or down) is.
const deltaX = Math.abs(1 / dx)
const deltaY = Math.abs(1 / dy)
// How far along the ray the next vertical (or horizontal) grid line is.
let nextX = (dx > 0 ? col + 1 - player.x : player.x - col) * deltaX
let nextY = (dy > 0 ? row + 1 - player.y : player.y - row) * deltaY
return { deltaX, deltaY, nextX, nextY }
```

Ne işe yarıyor

Sıra sende

castRay'deki return satırını sil; yerine bu satırları yaz. Çalıştır.

Beceriler: Hız ve yerçekimi

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ş