Add type hints

This commit is contained in:
oakes
2014-01-03 02:20:39 -05:00
parent c8888306f8
commit 51ad41440a
3 changed files with 37 additions and 19 deletions

View File

@@ -4,7 +4,8 @@
[com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera [com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera
PerspectiveCamera Texture] PerspectiveCamera Texture]
[com.badlogic.gdx.graphics.g2d Animation SpriteBatch TextureRegion] [com.badlogic.gdx.graphics.g2d Animation SpriteBatch TextureRegion]
[com.badlogic.gdx.maps.tiled TmxMapLoader] [com.badlogic.gdx.maps MapLayers]
[com.badlogic.gdx.maps.tiled TiledMap TiledMapTileLayer TmxMapLoader]
[com.badlogic.gdx.maps.tiled.renderers [com.badlogic.gdx.maps.tiled.renderers
BatchTiledMapRenderer BatchTiledMapRenderer
HexagonalTiledMapRenderer HexagonalTiledMapRenderer

View File

@@ -2,17 +2,31 @@
; drawing ; drawing
(defn draw! [{:keys [renderer]} entities] (defmulti sprite-batch #(-> % :renderer class) :default nil)
(defmethod sprite-batch nil
[screen]
(SpriteBatch.))
(defmethod sprite-batch BatchTiledMapRenderer
[{:keys [^BatchTiledMapRenderer renderer]}]
(.getSpriteBatch renderer))
(defmethod sprite-batch Stage
[{:keys [^Stage renderer]}]
(.getSpriteBatch renderer))
(defn draw! [{:keys [renderer] :as screen} entities]
(assert renderer) (assert renderer)
(let [batch (.getSpriteBatch renderer)] (let [^SpriteBatch batch (sprite-batch screen)]
(.begin batch) (.begin batch)
(doseq [e entities] (doseq [e entities]
(cond (cond
(map? e) (map? e)
(let [{:keys [image x y width height]} e] (let [{:keys [^TextureRegion image x y width height]} e]
(.draw batch image (float x) (float y) (float width) (float height))) (.draw batch image (float x) (float y) (float width) (float height)))
(isa? (type e) Actor) (isa? (type e) Actor)
(.draw e batch 1))) (.draw ^Actor e batch 1)))
(.end batch)) (.end batch))
entities) entities)
@@ -21,18 +35,18 @@
(defn image (defn image
[val] [val]
(if (string? val) (if (string? val)
(-> val Texture. TextureRegion.) (-> ^String val Texture. TextureRegion.)
(TextureRegion. val))) (TextureRegion. ^TextureRegion val)))
(defn split-image (defn split-image
([val size] ([val size]
(split-image val size size)) (split-image val size size))
([val width height] ([val width height]
(-> val image (.split width height)))) (-> val ^TextureRegion image (.split width height))))
(defn flip-image (defn flip-image
[val x? y?] [val x? y?]
(doto (image val) (.flip x? y?))) (doto ^TextureRegion (image val) (.flip x? y?)))
(defmacro animation (defmacro animation
[duration images & args] [duration images & args]

View File

@@ -17,12 +17,11 @@
(assert renderer) (assert renderer)
(cond (cond
(isa? (type renderer) BatchTiledMapRenderer) (isa? (type renderer) BatchTiledMapRenderer)
(doto renderer (doto ^BatchTiledMapRenderer renderer
(.setView camera) (.setView camera)
.render) .render)
(isa? (type renderer) Stage) (isa? (type renderer) Stage)
(.draw renderer) (.draw ^Stage renderer)))
:else nil))
(defn tiled-map-layer (defn tiled-map-layer
[{:keys [^BatchTiledMapRenderer renderer]} layer] [{:keys [^BatchTiledMapRenderer renderer]} layer]
@@ -33,8 +32,8 @@
[{:keys [^BatchTiledMapRenderer renderer] :as screen} layer x y] [{:keys [^BatchTiledMapRenderer renderer] :as screen} layer x y]
(assert renderer) (assert renderer)
(-> (if (or (string? layer) (number? layer)) (-> (if (or (string? layer) (number? layer))
(tiled-map-layer screen layer) ^TiledMapTileLayer (tiled-map-layer screen layer)
layer) ^TiledMapTileLayer layer)
(.getCell x y))) (.getCell x y)))
(defmulti renderer :type :default nil) (defmulti renderer :type :default nil)
@@ -42,16 +41,20 @@
(defmethod renderer nil [opts]) (defmethod renderer nil [opts])
(defmethod renderer :orthogonal-tiled-map [opts] (defmethod renderer :orthogonal-tiled-map [opts]
(OrthogonalTiledMapRenderer. (load-tiled-map opts) (unit-scale opts))) (OrthogonalTiledMapRenderer. ^TiledMap (load-tiled-map opts)
^double (unit-scale opts)))
(defmethod renderer :isometric-tiled-map [opts] (defmethod renderer :isometric-tiled-map [opts]
(IsometricTiledMapRenderer. (load-tiled-map opts) (unit-scale opts))) (IsometricTiledMapRenderer. ^TiledMap (load-tiled-map opts)
^double (unit-scale opts)))
(defmethod renderer :isometric-staggered-tiled-map [opts] (defmethod renderer :isometric-staggered-tiled-map [opts]
(IsometricStaggeredTiledMapRenderer. (load-tiled-map opts) (unit-scale opts))) (IsometricStaggeredTiledMapRenderer. ^TiledMap (load-tiled-map opts)
^double (unit-scale opts)))
(defmethod renderer :hexagonal-tiled-map [opts] (defmethod renderer :hexagonal-tiled-map [opts]
(HexagonalTiledMapRenderer. (load-tiled-map opts) (unit-scale opts))) (HexagonalTiledMapRenderer. ^TiledMap (load-tiled-map opts)
^double (unit-scale opts)))
(defmethod renderer :stage [_] (defmethod renderer :stage [_]
(Stage.)) (Stage.))
@@ -67,7 +70,7 @@
(PerspectiveCamera.)) (PerspectiveCamera.))
(defn resize-camera! (defn resize-camera!
[{:keys [^Camera camera]} width height] [{:keys [^OrthographicCamera camera]} width height]
(assert camera) (assert camera)
(.setToOrtho camera false width height)) (.setToOrtho camera false width height))