From 50d9d9e95b9884af95f5945dbe5c2cacf62dfc17 Mon Sep 17 00:00:00 2001 From: oakes Date: Mon, 24 Mar 2014 00:55:57 -0400 Subject: [PATCH] Only update camera once after changing position --- src/play_clj/core_cameras.clj | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/play_clj/core_cameras.clj b/src/play_clj/core_cameras.clj index 9353389..275f8f0 100644 --- a/src/play_clj/core_cameras.clj +++ b/src/play_clj/core_cameras.clj @@ -126,12 +126,14 @@ remains in tact ([screen pos] (let [^Camera camera (u/get-obj screen :camera)] (set! (. camera position) pos))) - ([screen x y] - (position! screen x y nil)) - ([screen x y z] - (when x (x! screen x)) - (when y (y! screen y)) - (when z (z! screen z)))) + ([screen x-val y-val] + (position! screen x-val y-val nil)) + ([screen x-val y-val z-val] + (let [^Camera camera (u/get-obj screen :camera)] + (when x-val (set! (. (. camera position) x) x-val)) + (when y-val (set! (. (. camera position) y) y-val)) + (when z-val (set! (. (. camera position) z) z-val)) + (.update camera)))) (defn position "Returns the position of the camera in `screen`"