Break up tiled-map-renderer into separate functions

This commit is contained in:
oakes
2014-01-08 14:10:11 -05:00
parent a534d49a90
commit b6bce49d40
3 changed files with 32 additions and 16 deletions

View File

@@ -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!

View File

@@ -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]

View File

@@ -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
[]