Rename files and improve animation code

This commit is contained in:
oakes
2013-12-30 18:35:26 -05:00
parent 5a69b2de39
commit 7f1ef44aa7
5 changed files with 49 additions and 11 deletions

View File

@@ -0,0 +1,46 @@
(in-ns 'play-clj.core)
; renderers
(defn load-tiled-map
[{:keys [file]}]
(assert (string? file))
(.load (TmxMapLoader.) file))
(defn unit-scale
[{:keys [tile-size]}]
(assert (number? tile-size))
(float (/ 1 tile-size)))
(defn render-tiled-map!
[{:keys [^BatchTiledMapRenderer renderer ^OrthographicCamera camera]}]
(.setView renderer camera)
(.render renderer))
(defmulti create-renderer :type :default :orthogonal-tiled-map)
(defmethod create-renderer :orthogonal-tiled-map [opts]
(OrthogonalTiledMapRenderer. (load-tiled-map opts) (unit-scale opts)))
(defmethod create-renderer :isometric-tiled-map [opts]
(IsometricTiledMapRenderer. (load-tiled-map opts) (unit-scale opts)))
(defmethod create-renderer :isometric-staggered-tiled-map [opts]
(IsometricStaggeredTiledMapRenderer. (load-tiled-map opts) (unit-scale opts)))
(defmethod create-renderer :hexagonal-tiled-map [opts]
(HexagonalTiledMapRenderer. (load-tiled-map opts) (unit-scale opts)))
; cameras
(defmulti create-camera identity :default :orthographic)
(defmethod create-camera :orthographic [_]
(OrthographicCamera.))
(defmethod create-camera :perspective [_]
(PerspectiveCamera.))
(defn resize-camera!
[{:keys [^Camera camera]} width height]
(.setToOrtho camera false width height))