Add update! and rename some symbols
This commit is contained in:
@@ -36,18 +36,22 @@
|
|||||||
(remove nil?)
|
(remove nil?)
|
||||||
(reset! entities)))
|
(reset! entities)))
|
||||||
create-renderer-fn! #(swap! screen assoc :renderer (renderer %))
|
create-renderer-fn! #(swap! screen assoc :renderer (renderer %))
|
||||||
create-camera-fn! #(swap! screen assoc :camera (camera %))]
|
create-camera-fn! #(swap! screen assoc :camera (camera %))
|
||||||
|
update-fn! #(swap! screen assoc
|
||||||
|
:renderer (renderer (:renderer %))
|
||||||
|
:camera (camera (:camera %)))]
|
||||||
{:show (fn []
|
{:show (fn []
|
||||||
(->> (swap! screen assoc
|
(->> (swap! screen assoc
|
||||||
:total-time 0
|
:total-time 0
|
||||||
:delta-time 0
|
:delta-time 0
|
||||||
:create-renderer create-renderer-fn!
|
:create-renderer-fn! create-renderer-fn!
|
||||||
:create-camera create-camera-fn!)
|
:create-camera-fn! create-camera-fn!
|
||||||
|
:update-fn! update-fn!)
|
||||||
(execute-fn! on-show)))
|
(execute-fn! on-show)))
|
||||||
:render (fn [delta-time]
|
:render (fn [delta-time]
|
||||||
(->> (fn [val]
|
(->> (fn [screen-map]
|
||||||
(assoc val
|
(assoc screen-map
|
||||||
:total-time (+ (:total-time val) delta-time)
|
:total-time (+ (:total-time screen-map) delta-time)
|
||||||
:delta-time delta-time))
|
:delta-time delta-time))
|
||||||
(swap! screen)
|
(swap! screen)
|
||||||
(execute-fn! on-render)))
|
(execute-fn! on-render)))
|
||||||
@@ -71,14 +75,14 @@
|
|||||||
(create [] (on-create this))))
|
(create [] (on-create this))))
|
||||||
|
|
||||||
(defmacro defgame
|
(defmacro defgame
|
||||||
[name & {:keys [] :as options}]
|
[n & {:keys [] :as options}]
|
||||||
`(defonce ~name (defgame* ~options)))
|
`(defonce ~n (defgame* ~options)))
|
||||||
|
|
||||||
(defn set-screen!
|
(defn set-screen!
|
||||||
[^Game game & screens]
|
[^Game game & screens]
|
||||||
(let [run-fn! (fn [key & args]
|
(let [run-fn! (fn [k & args]
|
||||||
(doseq [screen screens]
|
(doseq [screen screens]
|
||||||
(apply (get screen key) args)))]
|
(apply (get screen k) args)))]
|
||||||
(.setScreen game (proxy [Screen] []
|
(.setScreen game (proxy [Screen] []
|
||||||
(show [] (run-fn! :show))
|
(show [] (run-fn! :show))
|
||||||
(render [delta-time] (run-fn! :render delta-time))
|
(render [delta-time] (run-fn! :render delta-time))
|
||||||
@@ -87,10 +91,14 @@
|
|||||||
(resize [w h] (run-fn! :resize))
|
(resize [w h] (run-fn! :resize))
|
||||||
(resume [] (run-fn! :resume))))))
|
(resume [] (run-fn! :resume))))))
|
||||||
|
|
||||||
|
(defn update!
|
||||||
|
[{:keys [update-fn!]} & {:keys [] :as args}]
|
||||||
|
(update-fn! args))
|
||||||
|
|
||||||
(defn create-renderer!
|
(defn create-renderer!
|
||||||
[{:keys [create-renderer]} & {:keys [] :as args}]
|
[{:keys [create-renderer-fn!]} & {:keys [] :as args}]
|
||||||
(:renderer (create-renderer args)))
|
(:renderer (create-renderer-fn! args)))
|
||||||
|
|
||||||
(defn create-camera!
|
(defn create-camera!
|
||||||
[{:keys [create-camera]} & {:keys [] :as args}]
|
[{:keys [create-camera-fn!]} & {:keys [] :as args}]
|
||||||
(:camera (create-camera args)))
|
(:camera (create-camera-fn! args)))
|
||||||
|
|||||||
Reference in New Issue
Block a user