diff --git a/src/play_clj/core_2d.clj b/src/play_clj/core_2d.clj index 1e784dd..d330f04 100644 --- a/src/play_clj/core_2d.clj +++ b/src/play_clj/core_2d.clj @@ -16,10 +16,12 @@ (defn draw-actor! [^SpriteBatch batch {:keys [^Actor object] :as entity}] + (assert object) (.draw ^Actor object batch 1)) (defn draw-image! [^SpriteBatch batch {:keys [^TextureRegion object x y width height]}] + (assert (and object x y width height)) (.draw batch object (float x) (float y) (float width) (float height))) (defn draw-entity! diff --git a/src/play_clj/core_interop.clj b/src/play_clj/core_interop.clj index 25f8d1f..2f4c2ef 100644 --- a/src/play_clj/core_interop.clj +++ b/src/play_clj/core_interop.clj @@ -8,9 +8,21 @@ ; render -(defmacro tiled-map-renderer! +(defmacro orthogonal-tiled-map! [{:keys [renderer]} k & options] - `(utils/call! ^BatchTiledMapRenderer ~renderer ~k ~@options)) + `(utils/call! ^OrthogonalTiledMapRenderer ~renderer ~k ~@options)) + +(defmacro isometric-tiled-map! + [{:keys [renderer]} k & options] + `(utils/call! ^IsometricTiledMapRenderer ~renderer ~k ~@options)) + +(defmacro isometric-staggered-tiled-map! + [{:keys [renderer]} k & options] + `(utils/call! ^IsometricStaggeredTiledMapRenderer ~renderer ~k ~@options)) + +(defmacro hexagonal-tiled-map! + [{:keys [renderer]} k & options] + `(utils/call! ^HexagonalTiledMapRenderer ~renderer ~k ~@options)) (defmacro stage! [{:keys [renderer]} k & options] diff --git a/src/play_clj/core_render.clj b/src/play_clj/core_render.clj index ca9dbfc..a777f4f 100644 --- a/src/play_clj/core_render.clj +++ b/src/play_clj/core_render.clj @@ -48,20 +48,22 @@ (.load (TmxMapLoader.) s) s)) -(defn tiled-map-renderer - [renderer-type path pixels-per-tile] - (let [^TiledMap tmap (tiled-map path) - ^double unit-scale (/ 1 pixels-per-tile)] - (case renderer-type - :orthogonal - (OrthogonalTiledMapRenderer. tmap unit-scale) - :isometric - (IsometricTiledMapRenderer. tmap unit-scale) - :isometric-staggered - (IsometricStaggeredTiledMapRenderer. tmap unit-scale) - :hexagonal - (IsometricTiledMapRenderer. tmap unit-scale) - nil))) +(defn orthogonal-tiled-map + [path ppt] + (OrthogonalTiledMapRenderer. ^TiledMap (tiled-map path) ^double (/ 1 ppt))) + +(defn isometric-tiled-map + [path ppt] + (IsometricTiledMapRenderer. ^TiledMap (tiled-map path) ^double (/ 1 ppt))) + +(defn isometric-staggered-tiled-map + [path ppt] + (IsometricStaggeredTiledMapRenderer. ^TiledMap (tiled-map path) + ^double (/ 1 ppt))) + +(defn hexagonal-tiled-map + [path ppt] + (HexagonalTiledMapRenderer. ^TiledMap (tiled-map path) ^double (/ 1 ppt))) (defn stage []