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