Start 0.3.0-SNAPSHOT
This commit is contained in:
@@ -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"
|
:description "A LibGDX wrapper for easy cross-platform game development"
|
||||||
:url "https://github.com/oakes/play-clj"
|
:url "https://github.com/oakes/play-clj"
|
||||||
:license {:name "Public Domain"
|
:license {:name "Public Domain"
|
||||||
:url "http://unlicense.org/UNLICENSE"}
|
:url "http://unlicense.org/UNLICENSE"}
|
||||||
:dependencies [[com.badlogicgames.gdx/gdx "0.9.9"]
|
:dependencies [[com.badlogicgames.gdx/gdx "1.0-SNAPSHOT"]
|
||||||
[org.clojure/clojure "1.5.1"]])
|
[org.clojure/clojure "1.5.1"]]
|
||||||
|
:repositories [["sonatype"
|
||||||
|
"https://oss.sonatype.org/content/repositories/snapshots/"]])
|
||||||
|
|||||||
@@ -106,7 +106,6 @@
|
|||||||
[{:keys [on-create]}]
|
[{:keys [on-create]}]
|
||||||
(proxy [Game] []
|
(proxy [Game] []
|
||||||
(create []
|
(create []
|
||||||
(Texture/setEnforcePotImages false)
|
|
||||||
(when on-create
|
(when on-create
|
||||||
(on-create this)))))
|
(on-create this)))))
|
||||||
|
|
||||||
|
|||||||
@@ -39,13 +39,15 @@
|
|||||||
(u/call! object# ~k ~@options)))
|
(u/call! object# ~k ~@options)))
|
||||||
|
|
||||||
(defn size!
|
(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)"
|
(size! screen 480 360)"
|
||||||
[screen width height]
|
[screen width height]
|
||||||
(let [^Camera camera (u/get-obj screen :camera)]
|
(let [^Camera camera (u/get-obj screen :camera)]
|
||||||
(set! (. camera viewportWidth) width)
|
(set! (. camera viewportWidth) width)
|
||||||
(set! (. camera viewportHeight) height)
|
(set! (. camera viewportHeight) height)
|
||||||
|
(set! (. (. camera position) x) (/ width 2))
|
||||||
|
(set! (. (. camera position) y) (/ height 2))
|
||||||
(.update camera)))
|
(.update camera)))
|
||||||
|
|
||||||
(defn width!
|
(defn width!
|
||||||
|
|||||||
@@ -354,10 +354,7 @@ specify which layers to render with or without.
|
|||||||
|
|
||||||
(defn render-stage!
|
(defn render-stage!
|
||||||
"Calls the stage renderer from `screen`."
|
"Calls the stage renderer from `screen`."
|
||||||
[{:keys [^Stage renderer ^Camera camera] :as screen}]
|
[{:keys [^Stage renderer] :as screen}]
|
||||||
(when camera
|
|
||||||
(.setCamera renderer camera)
|
|
||||||
(.setViewport renderer (. camera viewportWidth) (. camera viewportHeight)))
|
|
||||||
(doto renderer .act .draw)
|
(doto renderer .act .draw)
|
||||||
nil)
|
nil)
|
||||||
|
|
||||||
|
|||||||
@@ -177,37 +177,45 @@
|
|||||||
; update functions
|
; update functions
|
||||||
|
|
||||||
(defn ^:private update-stage!
|
(defn ^:private update-stage!
|
||||||
[{:keys [^Stage renderer ui-listeners]} entities]
|
([{:keys [^Stage renderer ^Camera camera] :as screen}]
|
||||||
(doseq [^Actor a (.getActors renderer)]
|
(when camera
|
||||||
(.remove a))
|
(doto (.getViewport renderer)
|
||||||
(doseq [{:keys [object]} entities]
|
(.setCamera camera))))
|
||||||
(when (isa? (type object) Actor)
|
([{:keys [^Stage renderer ui-listeners]} entities]
|
||||||
(.addActor renderer object)
|
(doseq [^Actor a (.getActors renderer)]
|
||||||
(doseq [listener ui-listeners]
|
(.remove a))
|
||||||
(.addListener ^Actor object listener))))
|
(doseq [{:keys [object]} entities]
|
||||||
(remove-input! renderer)
|
(when (isa? (type object) Actor)
|
||||||
(add-input! renderer))
|
(.addActor renderer object)
|
||||||
|
(doseq [listener ui-listeners]
|
||||||
|
(.addListener ^Actor object listener))))
|
||||||
|
(remove-input! renderer)
|
||||||
|
(add-input! renderer)))
|
||||||
|
|
||||||
(defn ^:private update-box-2d!
|
(defn ^:private update-box-2d!
|
||||||
[{:keys [^World world]} entities]
|
([{:keys [^World world g2dp-listener]}]
|
||||||
(when-not (.isLocked world)
|
(.setContactListener world g2dp-listener))
|
||||||
(let [arr (u/gdx-array [])]
|
([{:keys [^World world]} entities]
|
||||||
; remove bodies that no longer exist
|
(when-not (.isLocked world)
|
||||||
(.getBodies world arr)
|
(let [arr (u/gdx-array [])]
|
||||||
(doseq [body arr]
|
; remove bodies that no longer exist
|
||||||
(when-not (some #(= body (:body %)) entities)
|
(.getBodies world arr)
|
||||||
(.destroyBody world body)))
|
(doseq [body arr]
|
||||||
; remove joints whose bodies no longer exist
|
(when-not (some #(= body (:body %)) entities)
|
||||||
(.getJoints world arr)
|
(.destroyBody world body)))
|
||||||
(doseq [^Joint joint arr]
|
; remove joints whose bodies no longer exist
|
||||||
(when (and (not (some #(= (.getBodyA joint) (:body %)) entities))
|
(.getJoints world arr)
|
||||||
(not (some #(= (.getBodyB joint) (:body %)) entities)))
|
(doseq [^Joint joint arr]
|
||||||
(.destroyJoint world joint))))))
|
(when (and (not (some #(= (.getBodyA joint) (:body %)) entities))
|
||||||
|
(not (some #(= (.getBodyB joint) (:body %)) entities)))
|
||||||
|
(.destroyJoint world joint)))))))
|
||||||
|
|
||||||
(defn ^:private update-screen!
|
(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)
|
(when (isa? (type world) World)
|
||||||
(.setContactListener ^World world g2dp-listener)))
|
(update-box-2d! screen)))
|
||||||
([{:keys [renderer world] :as screen} entities]
|
([{:keys [renderer world] :as screen} entities]
|
||||||
(when (isa? (type renderer) Stage)
|
(when (isa? (type renderer) Stage)
|
||||||
(update-stage! screen entities))
|
(update-stage! screen entities))
|
||||||
|
|||||||
@@ -148,11 +148,11 @@
|
|||||||
; animation
|
; animation
|
||||||
|
|
||||||
(defmacro play-mode
|
(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)"
|
(play-mode :loop)"
|
||||||
[k]
|
[k]
|
||||||
`~(u/gdx-field :graphics :g2d :Animation (u/key->upper k)))
|
`~(u/gdx-field :graphics :g2d "Animation$PlayMode" (u/key->upper k)))
|
||||||
|
|
||||||
(defn animation*
|
(defn animation*
|
||||||
[duration textures]
|
[duration textures]
|
||||||
|
|||||||
Reference in New Issue
Block a user