diff --git a/src/play_clj/core.clj b/src/play_clj/core.clj index fa6b39b..a079f36 100644 --- a/src/play_clj/core.clj +++ b/src/play_clj/core.clj @@ -5,7 +5,7 @@ [play-clj.utils :as u]) (:import [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input InputMultiplexer InputProcessor Net Preferences Screen] - [com.badlogic.gdx.audio Sound] + [com.badlogic.gdx.audio Sound Music] [com.badlogic.gdx.assets AssetManager] [com.badlogic.gdx.assets.loaders AsynchronousAssetLoader ParticleEffectLoader] diff --git a/src/play_clj/core_basics.clj b/src/play_clj/core_basics.clj index 167a94b..fc91398 100644 --- a/src/play_clj/core_basics.clj +++ b/src/play_clj/core_basics.clj @@ -153,7 +153,7 @@ (audio! :new-sound (files! :internal path)))) (defmacro sound - "Returns a [Sound](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/audio/Sound.html). + "Returns a [Sound](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/audio/Sound.html). Supports wav, mp3, and ogg. (sound \"playerhurt.wav\") (sound \"playerhurt.wav\" :play)" @@ -169,3 +169,26 @@ [object k & options] `(let [^Sound object# ~object] (u/call! object# ~k ~@options))) + +(defn music* + [^String path] + (or (u/load-asset path Music) + (audio! :new-music (files! :internal path)))) + +(defmacro music + "Returns a [Music](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/audio/Music.html). Supports wav, mp3, and ogg. + + (music \"song.wav\") + (music \"song.wav\" :play)" + [path & options] + `(let [^Music object# (music* ~path)] + (u/calls! object# ~@options))) + +(defmacro music! + "Calls a single method on a `music`. + + (music! object :play) + (music! object :dispose)" + [object k & options] + `(let [^Music object# ~object] + (u/call! object# ~k ~@options)))