Make sure actors have a stage before trying to draw them

This commit is contained in:
oakes
2015-02-28 23:55:44 -05:00
parent f74c5d7820
commit eabdaa3339

View File

@@ -58,22 +58,23 @@
(defrecord ActorEntity [object] Entity (defrecord ActorEntity [object] Entity
(draw! [{:keys [^Actor object x y width height (draw! [{:keys [^Actor object x y width height
scale-x scale-y angle origin-x origin-y]} _ batch] scale-x scale-y angle origin-x origin-y]} _ batch]
(some->> x (.setX object)) (when (.getStage object)
(some->> y (.setY object)) (some->> x (.setX object))
(some->> width (.setWidth object)) (some->> y (.setY object))
(some->> height (.setHeight object)) (some->> width (.setWidth object))
(when (or scale-x scale-y angle) (some->> height (.setHeight object))
(let [scale-x (float (or scale-x 1)) (when (or scale-x scale-y angle)
scale-y (float (or scale-y 1)) (let [scale-x (float (or scale-x 1))
origin-x (float (or origin-x (/ (.getWidth object) 2))) scale-y (float (or scale-y 1))
origin-y (float (or origin-y (/ (.getHeight object) 2))) origin-x (float (or origin-x (/ (.getWidth object) 2)))
angle (float (or angle 0))] origin-y (float (or origin-y (/ (.getHeight object) 2)))
(.setScaleX object scale-x) angle (float (or angle 0))]
(.setScaleY object scale-y) (.setScaleX object scale-x)
(.setOriginX object origin-x) (.setScaleY object scale-y)
(.setOriginY object origin-y) (.setOriginX object origin-x)
(.setRotation object angle))) (.setOriginY object origin-y)
(.draw object ^Batch batch 1))) (.setRotation object angle)))
(.draw object ^Batch batch 1))))
(defrecord ModelEntity [object] Entity (defrecord ModelEntity [object] Entity
(draw! [{:keys [^ModelInstance object x y z]} (draw! [{:keys [^ModelInstance object x y z]}