Allow updating entities

This commit is contained in:
oakes
2013-12-29 15:46:04 -05:00
parent 30da6679cc
commit 788356b2df
2 changed files with 14 additions and 6 deletions

View File

@@ -36,10 +36,13 @@
(->> entity
(conj (:entities @screen))
(swap! screen assoc :entities)))
del-entity (fn [entity]
rem-entity (fn [entity]
(->> (:entities @screen)
(remove #(= % entity))
(swap! screen assoc :entities)))]
(swap! screen assoc :entities)))
upd-entity (fn [entity args]
(rem-entity entity)
(add-entity (apply assoc entity args)))]
(proxy [Screen] []
(show []
(swap! screen assoc
@@ -48,7 +51,8 @@
:total-time 0
:entities []
:add-entity add-entity
:del-entity del-entity)
:rem-entity rem-entity
:upd-entity upd-entity)
(on-show @screen))
(render [delta-time]
(swap! screen assoc :total-time (+ (:total-time @screen) delta-time))
@@ -68,8 +72,12 @@
(add-entity e))
(defn remove-entity!
[{:keys [del-entity]} e]
(del-entity e))
[{:keys [rem-entity]} e]
(rem-entity e))
(defn update-entity!
[{:keys [upd-entity]} e & args]
(upd-entity e args))
(defn set-screen!
[^Game game ^Screen screen]

View File

@@ -65,6 +65,6 @@
(.begin batch)
(doseq [{:keys [image x y width height]} entities]
(when (and image x y width height)
(.draw batch image x y width height)))
(.draw batch image (float x) (float y) (float width) (float height))))
(.end batch)
batch)))