Merge branch 'master' of https://github.com/oakes/play-clj
This commit is contained in:
@@ -162,16 +162,15 @@ of the camera will be set."
|
||||
(. camera position)))
|
||||
|
||||
(defn position!
|
||||
"Sets the position of `object`. If `object` is a screen, the position of the
|
||||
camera will be set."
|
||||
([object vec-3]
|
||||
(position! object (x vec-3) (y vec-3) (z vec-3)))
|
||||
([object x-val y-val]
|
||||
(position! object x-val y-val nil))
|
||||
([object x-val y-val z-val]
|
||||
(some->> x-val (x! object))
|
||||
(some->> y-val (y! object))
|
||||
(some->> z-val (z! object))))
|
||||
"Sets the position of the camera in `screen`."
|
||||
([screen vec-3]
|
||||
(position! screen (x vec-3) (y vec-3) (z vec-3)))
|
||||
([screen x-val y-val]
|
||||
(position! screen x-val y-val nil))
|
||||
([screen x-val y-val z-val]
|
||||
(some->> x-val (x! screen))
|
||||
(some->> y-val (y! screen))
|
||||
(some->> z-val (z! screen))))
|
||||
|
||||
(defn direction
|
||||
"Returns the direction of the camera in `screen`."
|
||||
@@ -181,10 +180,17 @@ camera will be set."
|
||||
|
||||
(defn direction!
|
||||
"Sets the direction of the camera in `screen`."
|
||||
[screen x-val y-val z-val]
|
||||
(let [^Camera camera (u/get-obj screen :camera)]
|
||||
(.lookAt camera x-val y-val z-val)
|
||||
(.update camera)))
|
||||
([screen x-val y-val z-val]
|
||||
(direction! screen x-val y-val z-val true))
|
||||
([screen x-val y-val z-val look-at?]
|
||||
(let [^Camera camera (u/get-obj screen :camera)]
|
||||
(if look-at?
|
||||
(.lookAt camera x-val y-val z-val)
|
||||
(let [^Vector3 dir-vec (direction screen)]
|
||||
(some->> x-val (x! dir-vec))
|
||||
(some->> y-val (y! dir-vec))
|
||||
(some->> z-val (z! dir-vec))))
|
||||
(.update camera))))
|
||||
|
||||
(defn up [screen]
|
||||
"Returns the up vector of the camera in `screen`."
|
||||
|
||||
@@ -529,6 +529,7 @@ specify which layers to render with or without.
|
||||
(set layer-names))
|
||||
(u/throw-key-not-found k))
|
||||
(map #(.indexOf ^java.util.List all-layer-names %))
|
||||
(sort)
|
||||
int-array
|
||||
(.render renderer)))
|
||||
(.render renderer))
|
||||
|
||||
@@ -58,22 +58,23 @@
|
||||
(defrecord ActorEntity [object] Entity
|
||||
(draw! [{:keys [^Actor object x y width height
|
||||
scale-x scale-y angle origin-x origin-y]} _ batch]
|
||||
(some->> x (.setX object))
|
||||
(some->> y (.setY object))
|
||||
(some->> width (.setWidth object))
|
||||
(some->> height (.setHeight object))
|
||||
(when (or scale-x scale-y angle)
|
||||
(let [scale-x (float (or scale-x 1))
|
||||
scale-y (float (or scale-y 1))
|
||||
origin-x (float (or origin-x (/ (.getWidth object) 2)))
|
||||
origin-y (float (or origin-y (/ (.getHeight object) 2)))
|
||||
angle (float (or angle 0))]
|
||||
(.setScaleX object scale-x)
|
||||
(.setScaleY object scale-y)
|
||||
(.setOriginX object origin-x)
|
||||
(.setOriginY object origin-y)
|
||||
(.setRotation object angle)))
|
||||
(.draw object ^Batch batch 1)))
|
||||
(when (.getStage object)
|
||||
(some->> x (.setX object))
|
||||
(some->> y (.setY object))
|
||||
(some->> width (.setWidth object))
|
||||
(some->> height (.setHeight object))
|
||||
(when (or scale-x scale-y angle)
|
||||
(let [scale-x (float (or scale-x 1))
|
||||
scale-y (float (or scale-y 1))
|
||||
origin-x (float (or origin-x (/ (.getWidth object) 2)))
|
||||
origin-y (float (or origin-y (/ (.getHeight object) 2)))
|
||||
angle (float (or angle 0))]
|
||||
(.setScaleX object scale-x)
|
||||
(.setScaleY object scale-y)
|
||||
(.setOriginX object origin-x)
|
||||
(.setOriginY object origin-y)
|
||||
(.setRotation object angle)))
|
||||
(.draw object ^Batch batch 1))))
|
||||
|
||||
(defrecord ModelEntity [object] Entity
|
||||
(draw! [{:keys [^ModelInstance object x y z]}
|
||||
|
||||
Reference in New Issue
Block a user