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 (:import [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
InputMultiplexer InputProcessor Net Screen] InputMultiplexer InputProcessor Net Screen]
[com.badlogic.gdx.audio Sound] [com.badlogic.gdx.audio Sound]
[com.badlogic.gdx.assets AssetManager]
[com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera [com.badlogic.gdx.graphics Camera Color GL20 OrthographicCamera
PerspectiveCamera VertexAttributes$Usage] PerspectiveCamera VertexAttributes$Usage]
[com.badlogic.gdx.graphics.g2d NinePatch ParticleEffect SpriteBatch [com.badlogic.gdx.graphics.g2d NinePatch ParticleEffect SpriteBatch

View File

@@ -170,18 +170,36 @@
(loader :skin \"uiskin.json\") (loader :skin \"uiskin.json\")
(loader :sound \"hit.ogg\") (loader :sound \"hit.ogg\")
(loader :texture \"monster.png\")" (loader :texture \"monster.png\")"
[type path & options] [type resolver & options]
`(let [object# (~(loader-init type) (if (string? ~path) `(let [object# (~(loader-init type) ~resolver)]
(files! :internal ~path)
~path))]
(u/calls! object# ~@options))) (u/calls! object# ~@options)))
(defmacro loader! (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))" (loader! object :load \"map.tmx\")"
[type k & options] [object & options]
`(~(u/gdx-field :graphics :g3d :attributes `(u/call! ~object ~@options))
(str (u/key->pascal type) "Attribute")
(u/key->camel k)) (defn asset-manager*
~@options)) "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)))