From e6d9b752d95fe86c48a6b1fef2ac7ba04ee0618b Mon Sep 17 00:00:00 2001 From: oakes Date: Thu, 9 Jan 2014 16:28:00 -0500 Subject: [PATCH] Allow reading from the screen and entities atoms via a REPL --- src/play_clj/core.clj | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/play_clj/core.clj b/src/play_clj/core.clj index 491876d..a2b84dc 100644 --- a/src/play_clj/core.clj +++ b/src/play_clj/core.clj @@ -51,7 +51,9 @@ (reset! entities))) create-renderer-fn! #(swap! screen assoc :renderer (renderer %)) update-fn! #(swap! screen merge %)] - {:show (fn [] + {:screen screen + :entities entities + :show (fn [] (->> (swap! screen assoc :total-time 0 :delta-time 0 @@ -72,12 +74,11 @@ (defmacro defscreen [n & {:keys [] :as options}] - `(->> (for [[k# v#] ~options] - [k# (intern *ns* (symbol (str '~n "-" (name k#))) v#)]) - flatten - (apply hash-map) - defscreen* - (def ~n))) + `(let [fns# (->> (for [[k# v#] ~options] + [k# (intern *ns* (symbol (str '~n "-" (name k#))) v#)]) + flatten + (apply hash-map))] + (defonce ~n (defscreen* fns#)))) (defn defgame* [{:keys [on-create] :or {on-create dummy}}]