Break up tiled-map-renderer into separate functions
This commit is contained in:
@@ -16,10 +16,12 @@
|
|||||||
|
|
||||||
(defn draw-actor!
|
(defn draw-actor!
|
||||||
[^SpriteBatch batch {:keys [^Actor object] :as entity}]
|
[^SpriteBatch batch {:keys [^Actor object] :as entity}]
|
||||||
|
(assert object)
|
||||||
(.draw ^Actor object batch 1))
|
(.draw ^Actor object batch 1))
|
||||||
|
|
||||||
(defn draw-image!
|
(defn draw-image!
|
||||||
[^SpriteBatch batch {:keys [^TextureRegion object x y width height]}]
|
[^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)))
|
(.draw batch object (float x) (float y) (float width) (float height)))
|
||||||
|
|
||||||
(defn draw-entity!
|
(defn draw-entity!
|
||||||
|
|||||||
@@ -8,9 +8,21 @@
|
|||||||
|
|
||||||
; render
|
; render
|
||||||
|
|
||||||
(defmacro tiled-map-renderer!
|
(defmacro orthogonal-tiled-map!
|
||||||
[{:keys [renderer]} k & options]
|
[{: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!
|
(defmacro stage!
|
||||||
[{:keys [renderer]} k & options]
|
[{:keys [renderer]} k & options]
|
||||||
|
|||||||
@@ -48,20 +48,22 @@
|
|||||||
(.load (TmxMapLoader.) s)
|
(.load (TmxMapLoader.) s)
|
||||||
s))
|
s))
|
||||||
|
|
||||||
(defn tiled-map-renderer
|
(defn orthogonal-tiled-map
|
||||||
[renderer-type path pixels-per-tile]
|
[path ppt]
|
||||||
(let [^TiledMap tmap (tiled-map path)
|
(OrthogonalTiledMapRenderer. ^TiledMap (tiled-map path) ^double (/ 1 ppt)))
|
||||||
^double unit-scale (/ 1 pixels-per-tile)]
|
|
||||||
(case renderer-type
|
(defn isometric-tiled-map
|
||||||
:orthogonal
|
[path ppt]
|
||||||
(OrthogonalTiledMapRenderer. tmap unit-scale)
|
(IsometricTiledMapRenderer. ^TiledMap (tiled-map path) ^double (/ 1 ppt)))
|
||||||
:isometric
|
|
||||||
(IsometricTiledMapRenderer. tmap unit-scale)
|
(defn isometric-staggered-tiled-map
|
||||||
:isometric-staggered
|
[path ppt]
|
||||||
(IsometricStaggeredTiledMapRenderer. tmap unit-scale)
|
(IsometricStaggeredTiledMapRenderer. ^TiledMap (tiled-map path)
|
||||||
:hexagonal
|
^double (/ 1 ppt)))
|
||||||
(IsometricTiledMapRenderer. tmap unit-scale)
|
|
||||||
nil)))
|
(defn hexagonal-tiled-map
|
||||||
|
[path ppt]
|
||||||
|
(HexagonalTiledMapRenderer. ^TiledMap (tiled-map path) ^double (/ 1 ppt)))
|
||||||
|
|
||||||
(defn stage
|
(defn stage
|
||||||
[]
|
[]
|
||||||
|
|||||||
Reference in New Issue
Block a user