make move speed consistent
This commit is contained in:
parent
34e534b6f2
commit
2e2461c35a
3 changed files with 19 additions and 16 deletions
|
|
@ -87,29 +87,36 @@
|
|||
move-delta (* move-speed dt)]
|
||||
|
||||
(var moving false)
|
||||
(var new-x cam-x)
|
||||
(var new-z cam-z)
|
||||
(var move-forward 0)
|
||||
(var move-right 0)
|
||||
|
||||
(when (pxl8.key_down "w")
|
||||
(set new-x (+ new-x (* forward-x move-delta)))
|
||||
(set new-z (+ new-z (* forward-z move-delta)))
|
||||
(set move-forward (+ move-forward 1))
|
||||
(set moving true))
|
||||
|
||||
(when (pxl8.key_down "s")
|
||||
(set new-x (- new-x (* forward-x move-delta)))
|
||||
(set new-z (- new-z (* forward-z move-delta)))
|
||||
(set move-forward (- move-forward 1))
|
||||
(set moving true))
|
||||
|
||||
(when (pxl8.key_down "q")
|
||||
(set new-x (- new-x (* right-x move-delta)))
|
||||
(set new-z (- new-z (* right-z move-delta)))
|
||||
(set move-right (- move-right 1))
|
||||
(set moving true))
|
||||
|
||||
(when (pxl8.key_down "e")
|
||||
(set new-x (+ new-x (* right-x move-delta)))
|
||||
(set new-z (+ new-z (* right-z move-delta)))
|
||||
(set move-right (+ move-right 1))
|
||||
(set moving true))
|
||||
|
||||
(var new-x cam-x)
|
||||
(var new-z cam-z)
|
||||
|
||||
(when moving
|
||||
(let [len (math.sqrt (+ (* move-forward move-forward) (* move-right move-right)))]
|
||||
(when (> len 0)
|
||||
(let [norm-forward (/ move-forward len)
|
||||
norm-right (/ move-right len)]
|
||||
(set new-x (+ new-x (* move-delta (+ (* forward-x norm-forward) (* right-x norm-right)))))
|
||||
(set new-z (+ new-z (* move-delta (+ (* forward-z norm-forward) (* right-z norm-right)))))))))
|
||||
|
||||
(when (and (>= new-x 0) (<= new-x grid-max)
|
||||
(>= new-z 0) (<= new-z grid-max))
|
||||
(set cam-x new-x)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue