Add basic-map-layer

This commit is contained in:
oakes
2014-04-09 12:11:08 -04:00
parent 9a96162411
commit cd9cebb8e0
2 changed files with 28 additions and 2 deletions

View File

@@ -118,6 +118,8 @@
"joint!" :methods}
"Label" {"label" :methods
"label!" :methods}
"MapLayer" {"basic-map-layer" :methods
"basic-map-layer!" :methods}
"Material" {"material" :methods
"material!" :methods}
"MathUtils" {"math!" :static-methods}

View File

@@ -129,8 +129,8 @@ from the tiled map in `screen` that matches `layer`.
"Returns a list with strings cooresponding to the name of each layer in the
tiled map in `screen`."
[screen]
(for [layer (tiled-map-layers screen)]
(tiled-map-layer! layer :get-name)))
(for [^MapLayer layer (tiled-map-layers screen)]
(.getName layer)))
(defn tiled-map-cell*
([]
@@ -155,6 +155,30 @@ from the tiled map in `screen` from the given `layer` and position `x` and `y`.
[object k & options]
`(u/call! ^TiledMapTileLayer$Cell ~object ~k ~@options))
(defn basic-map-layer*
([]
(MapLayer.))
([screen layer]
(tiled-map-layer* screen layer)))
(defmacro basic-map-layer
"Returns a [MapLayer](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/maps/MapLayer.html)
from the tiled map in `screen` that matches `layer`. This is necessary for
non-tile layers, like object and image layers.
(basic-map-layer screen \"water\")"
[screen layer & options]
`(let [^MapLayer object# (basic-map-layer* ~screen ~layer)]
(u/calls! object# ~@options)))
(defmacro basic-map-layer!
"Calls a single method on a `basic-map-layer`.
(basic-map-layer! (basic-map-layer screen \"water\")
:set-visible false)"
[object k & options]
`(u/call! ^MapLayer ~object ~k ~@options))
(defn ^:private tiled-map-prop
[screen]
(let [^BatchTiledMapRenderer renderer (u/get-obj screen :renderer)