diff --git a/src/play_clj/core.clj b/src/play_clj/core.clj index 44f0d0e..b9f33fd 100644 --- a/src/play_clj/core.clj +++ b/src/play_clj/core.clj @@ -61,13 +61,19 @@ [screen screen-fn] (screen-fn)) +(defn ^:private merge-coords + [{:keys [input-x input-y] :as screen}] + (let [x (or input-x (game :x)) + y (or input-y (game :y))] + (merge screen (input->screen screen x y)))) + (defn defscreen* [{:keys [screen entities on-show on-render on-hide on-pause on-resize on-resume on-timer] :as options}] (let [execute-fn! (fn [func & {:keys [] :as options}] (when func - (let [screen-map (merge @screen options) + (let [screen-map (merge-coords (merge @screen options)) old-entities @entities] (some->> (with-meta #(normalize (func screen-map old-entities))