Returns a map with the provided x,y,z values converted from input to screen coordinates.
(input->screen screen {:x 10 :y 10 :z 0})
(input->screen screen 10 10)
(input->screen screen 10 10 0)
Source
(defn input->screen
([screen {:keys [x y z] :or {x 0 y 0 z 0} :as entity}]
(try
(let [^Camera camera (u/get-obj screen :camera)
coords (m/vector-3 x y z)]
(.unproject camera coords)
(assoc entity
:x (. coords x)
:y (. coords y)
:z (. coords z)))
; if there's no camera, just flip the y axis
(catch Exception _
(assoc entity :y (- (game :height) y)))))
([screen x y]
(input->screen screen {:x x :y y}))
([screen x y z]
(input->screen screen {:x x :y y :z z})))