Rename files and improve animation code
This commit is contained in:
46
common/src/play_clj/core_render.clj
Normal file
46
common/src/play_clj/core_render.clj
Normal 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))
|
||||
Reference in New Issue
Block a user