Start 0.3.0-SNAPSHOT

This commit is contained in:
oakes
2014-04-06 02:27:41 -04:00
parent 25895faa9b
commit ef918eb21c
6 changed files with 45 additions and 37 deletions

View File

@@ -1,7 +1,9 @@
(defproject play-clj "0.2.5-SNAPSHOT"
(defproject play-clj "0.3.0-SNAPSHOT"
:description "A LibGDX wrapper for easy cross-platform game development"
:url "https://github.com/oakes/play-clj"
:license {:name "Public Domain"
:url "http://unlicense.org/UNLICENSE"}
:dependencies [[com.badlogicgames.gdx/gdx "0.9.9"]
[org.clojure/clojure "1.5.1"]])
:dependencies [[com.badlogicgames.gdx/gdx "1.0-SNAPSHOT"]
[org.clojure/clojure "1.5.1"]]
:repositories [["sonatype"
"https://oss.sonatype.org/content/repositories/snapshots/"]])

View File

@@ -106,7 +106,6 @@
[{:keys [on-create]}]
(proxy [Game] []
(create []
(Texture/setEnforcePotImages false)
(when on-create
(on-create this)))))

View File

@@ -39,13 +39,15 @@
(u/call! object# ~k ~@options)))
(defn size!
"Sets the size of the camera in `screen`.
"Sets the size of the camera in `screen` and recenters it.
(size! screen 480 360)"
[screen width height]
(let [^Camera camera (u/get-obj screen :camera)]
(set! (. camera viewportWidth) width)
(set! (. camera viewportHeight) height)
(set! (. (. camera position) x) (/ width 2))
(set! (. (. camera position) y) (/ height 2))
(.update camera)))
(defn width!

View File

@@ -354,10 +354,7 @@ specify which layers to render with or without.
(defn render-stage!
"Calls the stage renderer from `screen`."
[{:keys [^Stage renderer ^Camera camera] :as screen}]
(when camera
(.setCamera renderer camera)
(.setViewport renderer (. camera viewportWidth) (. camera viewportHeight)))
[{:keys [^Stage renderer] :as screen}]
(doto renderer .act .draw)
nil)

View File

@@ -177,37 +177,45 @@
; update functions
(defn ^:private update-stage!
[{:keys [^Stage renderer ui-listeners]} entities]
(doseq [^Actor a (.getActors renderer)]
(.remove a))
(doseq [{:keys [object]} entities]
(when (isa? (type object) Actor)
(.addActor renderer object)
(doseq [listener ui-listeners]
(.addListener ^Actor object listener))))
(remove-input! renderer)
(add-input! renderer))
([{:keys [^Stage renderer ^Camera camera] :as screen}]
(when camera
(doto (.getViewport renderer)
(.setCamera camera))))
([{:keys [^Stage renderer ui-listeners]} entities]
(doseq [^Actor a (.getActors renderer)]
(.remove a))
(doseq [{:keys [object]} entities]
(when (isa? (type object) Actor)
(.addActor renderer object)
(doseq [listener ui-listeners]
(.addListener ^Actor object listener))))
(remove-input! renderer)
(add-input! renderer)))
(defn ^:private update-box-2d!
[{:keys [^World world]} entities]
(when-not (.isLocked world)
(let [arr (u/gdx-array [])]
; remove bodies that no longer exist
(.getBodies world arr)
(doseq [body arr]
(when-not (some #(= body (:body %)) entities)
(.destroyBody world body)))
; remove joints whose bodies no longer exist
(.getJoints world arr)
(doseq [^Joint joint arr]
(when (and (not (some #(= (.getBodyA joint) (:body %)) entities))
(not (some #(= (.getBodyB joint) (:body %)) entities)))
(.destroyJoint world joint))))))
([{:keys [^World world g2dp-listener]}]
(.setContactListener world g2dp-listener))
([{:keys [^World world]} entities]
(when-not (.isLocked world)
(let [arr (u/gdx-array [])]
; remove bodies that no longer exist
(.getBodies world arr)
(doseq [body arr]
(when-not (some #(= body (:body %)) entities)
(.destroyBody world body)))
; remove joints whose bodies no longer exist
(.getJoints world arr)
(doseq [^Joint joint arr]
(when (and (not (some #(= (.getBodyA joint) (:body %)) entities))
(not (some #(= (.getBodyB joint) (:body %)) entities)))
(.destroyJoint world joint)))))))
(defn ^:private update-screen!
([{:keys [world g2dp-listener]}]
([{:keys [renderer world] :as screen}]
(when (isa? (type renderer) Stage)
(update-stage! screen))
(when (isa? (type world) World)
(.setContactListener ^World world g2dp-listener)))
(update-box-2d! screen)))
([{:keys [renderer world] :as screen} entities]
(when (isa? (type renderer) Stage)
(update-stage! screen entities))

View File

@@ -148,11 +148,11 @@
; animation
(defmacro play-mode
"Returns a static field from [Animation](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Animation.html).
"Returns a static field from [Animation.PlayMode](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/graphics/g2d/Animation.PlayMode.html).
(play-mode :loop)"
[k]
`~(u/gdx-field :graphics :g2d :Animation (u/key->upper k)))
`~(u/gdx-field :graphics :g2d "Animation$PlayMode" (u/key->upper k)))
(defn animation*
[duration textures]