Fix camera behavior
This commit is contained in:
@@ -39,15 +39,13 @@
|
|||||||
(u/call! object# ~k ~@options)))
|
(u/call! object# ~k ~@options)))
|
||||||
|
|
||||||
(defn size!
|
(defn size!
|
||||||
"Sets the size of the camera in `screen` and recenters it.
|
"Sets the size of the camera in `screen`.
|
||||||
|
|
||||||
(size! screen 480 360)"
|
(size! screen 480 360)"
|
||||||
[screen width height]
|
[screen width height]
|
||||||
(let [^Camera camera (u/get-obj screen :camera)]
|
(let [^Camera camera (u/get-obj screen :camera)]
|
||||||
(set! (. camera viewportWidth) width)
|
(set! (. camera viewportWidth) width)
|
||||||
(set! (. camera viewportHeight) height)
|
(set! (. camera viewportHeight) height)
|
||||||
(set! (. (. camera position) x) (/ width 2))
|
|
||||||
(set! (. (. camera position) y) (/ height 2))
|
|
||||||
(.update camera)))
|
(.update camera)))
|
||||||
|
|
||||||
(defn width
|
(defn width
|
||||||
|
|||||||
@@ -163,7 +163,8 @@
|
|||||||
; g2d-physics
|
; g2d-physics
|
||||||
|
|
||||||
(defn ^:private contact-listener
|
(defn ^:private contact-listener
|
||||||
[{:keys [on-begin-contact on-end-contact on-post-solve on-pre-solve]} execute-fn!]
|
[{:keys [on-begin-contact on-end-contact on-post-solve on-pre-solve]}
|
||||||
|
execute-fn!]
|
||||||
(reify ContactListener
|
(reify ContactListener
|
||||||
(beginContact [this c]
|
(beginContact [this c]
|
||||||
(execute-fn! on-begin-contact :contact c))
|
(execute-fn! on-begin-contact :contact c))
|
||||||
@@ -180,7 +181,9 @@
|
|||||||
([{:keys [^Stage renderer ^Camera camera] :as screen}]
|
([{:keys [^Stage renderer ^Camera camera] :as screen}]
|
||||||
(when camera
|
(when camera
|
||||||
(doto (.getViewport renderer)
|
(doto (.getViewport renderer)
|
||||||
(.setCamera camera))))
|
(.setCamera camera)
|
||||||
|
(.setWorldSize (. camera viewportWidth) (. camera viewportHeight))
|
||||||
|
(.update (game :width) (game :height) true))))
|
||||||
([{:keys [^Stage renderer ui-listeners]} entities]
|
([{:keys [^Stage renderer ui-listeners]} entities]
|
||||||
(doseq [^Actor a (.getActors renderer)]
|
(doseq [^Actor a (.getActors renderer)]
|
||||||
(.remove a))
|
(.remove a))
|
||||||
|
|||||||
Reference in New Issue
Block a user