Break up tiled-map-renderer into separate functions
This commit is contained in:
@@ -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!
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
[]
|
||||
|
||||
Reference in New Issue
Block a user