Add asset-manager

This commit is contained in:
oakes
2014-02-12 21:10:59 -05:00
parent 781b79e985
commit 1a6da1e246
2 changed files with 30 additions and 11 deletions

View File

@@ -4,6 +4,7 @@
(:import [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
InputMultiplexer InputProcessor Net Screen]
[com.badlogic.gdx.audio Sound]
[com.badlogic.gdx.assets AssetManager]
[com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera
PerspectiveCamera VertexAttributes$Usage]
[com.badlogic.gdx.graphics.g2d NinePatch ParticleEffect SpriteBatch

View File

@@ -170,18 +170,36 @@
(loader :skin \"uiskin.json\")
(loader :sound \"hit.ogg\")
(loader :texture \"monster.png\")"
[type path & options]
`(let [object# (~(loader-init type) (if (string? ~path)
(files! :internal ~path)
~path))]
[type resolver & options]
`(let [object# (~(loader-init type) ~resolver)]
(u/calls! object# ~@options)))
(defmacro loader!
"Calls a static method in a subclass of [AsynchronousAssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AsynchronousAssetLoader.html)
"Calls a single method in a subclass of [AsynchronousAssetLoader](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/loaders/AsynchronousAssetLoader.html)
(attribute! :color :create-diffuse (color :blue))"
[type k & options]
`(~(u/gdx-field :graphics :g3d :attributes
(str (u/key->pascal type) "Attribute")
(u/key->camel k))
~@options))
(loader! object :load \"map.tmx\")"
[object & options]
`(u/call! ~object ~@options))
(defn asset-manager*
"The function version of `asset-manager`"
([]
(AssetManager.))
([resolver]
(AssetManager. resolver)))
(defmacro asset-manager
"Returns an [AssetManager](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/assets/AssetManager.html)
(asset-manager)"
[& options]
`(let [^AssetManager object# (asset-manager*)]
(u/calls! object# ~@options)))
(defmacro asset-manager!
"Calls a single method in an `asset-manager`
(asset-manager! object :clear)"
[object k & options]
`(let [^AssetManager object# ~object]
(u/call! object# ~k ~@options)))