Fixed the camera off-tilt thing

This commit is contained in:
Bill Niblock 2024-10-11 15:24:16 -04:00
parent 12a5618779
commit 6beae9d591

View file

@ -33,7 +33,7 @@
; ### "Player" variables ### ; ### "Player" variables ###
(var (posx posy) (values 4.0 4.0)) ; Initial map position (var (posx posy) (values 4.0 4.0)) ; Initial map position
(var (dirx diry) (values -1.0 0.0)) ; Initial direction vector (var (dirx diry) (values -1.0 0.0)) ; Initial direction vector
(var (planex planey) (values 0 0.80)) ; Camera plane (var (planex planey) (values 0 0.66)) ; Camera plane
{ {
:draw (fn love.draw [] :draw (fn love.draw []
@ -42,7 +42,7 @@
; Originals, giving a fish-eye lens effect: ; Originals, giving a fish-eye lens effect:
; (var camerax (/ (* 2 i) (- screen-width 1))) ; (var camerax (/ (* 2 i) (- screen-width 1)))
; (var (ray-dir-x ray-dir-y) (values (+ dirx (* planex camerax)) (+ diry (* planey camerax)))) ; (var (ray-dir-x ray-dir-y) (values (+ dirx (* planex camerax)) (+ diry (* planey camerax))))
(var camerax (/ (* 2 i) (- screen-width 1))) (var camerax (- (/ (* 2 i) (- screen-width 1)) 1.0))
(var (ray-dir-x ray-dir-y) (values (+ dirx (* planex camerax)) (+ diry (* planey camerax)))) (var (ray-dir-x ray-dir-y) (values (+ dirx (* planex camerax)) (+ diry (* planey camerax))))
; Which map square we're in ; Which map square we're in
@ -55,6 +55,9 @@
; (var (delta-dist-x delta-dist-y) (values ; (var (delta-dist-x delta-dist-y) (values
; (math.sqrt (+ 1 (/ (* ray-dir-y ray-dir-y) (* ray-dir-x ray-dir-x)))) ; (math.sqrt (+ 1 (/ (* ray-dir-y ray-dir-y) (* ray-dir-x ray-dir-x))))
; (math.sqrt (+ 1 (/ (* ray-dir-x ray-dir-x) (* ray-dir-y ray-dir-y)))))) ; (math.sqrt (+ 1 (/ (* ray-dir-x ray-dir-x) (* ray-dir-y ray-dir-y))))))
; (var (delta-dist-x delta-dist-y) (values
; (math.sqrt (+ 1 (* (/ ray-dir-y ray-dir-x) (/ ray-dir-y ray-dir-x))))
; (math.sqrt (+ 1 (* (/ ray-dir-x ray-dir-y) (/ ray-dir-x ray-dir-y))))))
(var (delta-dist-x delta-dist-y) (values (math.abs (/ 1 ray-dir-x)) (math.abs (/ 1 ray-dir-y)))) (var (delta-dist-x delta-dist-y) (values (math.abs (/ 1 ray-dir-x)) (math.abs (/ 1 ray-dir-y))))
(var perp-wall-dist 0) (var perp-wall-dist 0)