diff --git a/src/play_clj/g2d_physics.clj b/src/play_clj/g2d_physics.clj index ccb0d37..2a6fe39 100644 --- a/src/play_clj/g2d_physics.clj +++ b/src/play_clj/g2d_physics.clj @@ -39,7 +39,7 @@ ; bodies -(defn ^:private body-type +(defn body-type [k] (u/gdx-class :physics :box2d :BodyDef (str "BodyType/" (u/key->pascal k) "Body"))) @@ -50,8 +50,7 @@ (body-def :dynamic)" [k & options] `(let [^BodyDef object# (BodyDef.)] - (set! (. object# type) ~(body-type k)) - (u/fields! object# ~@options))) + (u/fields! object# :type ~(body-type k) ~@options))) (defmacro body! "Calls a single method on a body." diff --git a/src/play_clj/physics.clj b/src/play_clj/physics.clj index 8d48b5d..8c368fc 100644 --- a/src/play_clj/physics.clj +++ b/src/play_clj/physics.clj @@ -124,6 +124,7 @@ (def box-2d* p2d/box-2d*) (defmacro box-2d [& body] `(p2d/box-2d ~@body)) (defmacro box-2d! [& body] `(p2d/box-2d! ~@body)) +(def body-type p2d/body-type) (defmacro body-def [& body] `(p2d/body-def ~@body)) (defmacro body! [& body] `(p2d/body! ~@body)) (defmacro joint-def [& body] `(p2d/joint-def ~@body))