From 54f6b25b39f580b99f2b2b0387e7e5e0e8b2e096 Mon Sep 17 00:00:00 2001 From: Remington Covert Date: Wed, 4 Mar 2015 13:37:20 -0800 Subject: [PATCH] sound volume! --- desktop/resources/ui/slider-bar.png | Bin 0 -> 1268 bytes desktop/resources/ui/slider.9.png | Bin 0 -> 1258 bytes desktop/resources/ui/ui.atlas | 21 ++ desktop/resources/ui/ui.json | 5 + desktop/resources/ui/ui.png | Bin 0 -> 313 bytes desktop/resources/uiskin.atlas | 198 ++++++++++++++++++ desktop/resources/uiskin.json | 59 ++++++ desktop/resources/uiskin.png | Bin 0 -> 22779 bytes desktop/src-common/advent/actions.clj | 4 +- .../advent/screens/rooms/cat_tree.clj | 4 +- .../advent/screens/rooms/inside_antique.clj | 2 +- .../advent/screens/rooms/inside_cafeteria.clj | 2 +- .../advent/screens/rooms/inside_castle.clj | 17 +- .../advent/screens/rooms/inside_house.clj | 2 +- .../advent/screens/rooms/outside_house.clj | 2 +- .../src-common/advent/screens/rooms/space.clj | 10 +- desktop/src-common/advent/screens/safe.clj | 2 +- desktop/src-common/advent/screens/scene.clj | 10 +- desktop/src-common/advent/screens/title.clj | 32 ++- desktop/src-common/advent/utils.clj | 21 ++ 20 files changed, 354 insertions(+), 37 deletions(-) create mode 100644 desktop/resources/ui/slider-bar.png create mode 100644 desktop/resources/ui/slider.9.png create mode 100644 desktop/resources/ui/ui.atlas create mode 100644 desktop/resources/ui/ui.json create mode 100644 desktop/resources/ui/ui.png create mode 100644 desktop/resources/uiskin.atlas create mode 100644 desktop/resources/uiskin.json create mode 100644 desktop/resources/uiskin.png diff --git a/desktop/resources/ui/slider-bar.png b/desktop/resources/ui/slider-bar.png new file mode 100644 index 0000000000000000000000000000000000000000..a31eed342dd3a6e7a524844e16e18e1c59d78b50 GIT binary patch literal 1268 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 literal 0 HcmV?d00001 diff --git a/desktop/src-common/advent/actions.clj b/desktop/src-common/advent/actions.clj index 6a083e8b..211ed10e 100644 --- a/desktop/src-common/advent/actions.clj +++ b/desktop/src-common/advent/actions.clj @@ -482,7 +482,7 @@ (defn give [entities item] (run-action entities (begin [this screen entities] - (sound! (sound "pickup.mp3") :play) + (sound! (sound "pickup.mp3") :play (utils/current-sound-volume)) (-> entities (update-in [:state :inventory] #(conj % item)) @@ -552,7 +552,7 @@ (let [entities (-> entities (assoc-in [:music-override :value] new-music) (assoc-in [:volume :value] 1.0))] - (music! (utils/get-current-music entities) :set-volume 1.0) + (music! (utils/get-current-music entities) :set-volume (utils/current-music-volume)) (music! (utils/get-current-music entities) :play) entities)) diff --git a/desktop/src-common/advent/screens/rooms/cat_tree.clj b/desktop/src-common/advent/screens/rooms/cat_tree.clj index 25804b79..799e700b 100644 --- a/desktop/src-common/advent/screens/rooms/cat_tree.clj +++ b/desktop/src-common/advent/screens/rooms/cat_tree.clj @@ -268,7 +268,7 @@ (if (get-in @entities [:room :entities :ladder]) (do (actions/talk entities :ego "I think he's going for it!") (actions/play-animation entities :ego :cat-toy-first-half :stop? false) - (sound! (sound "cat-tree/cat.ogg") :play) + (sound! (sound "cat-tree/cat.ogg") :play (utils/current-sound-volume)) (actions/walk-straight-to entities :cat [138 40] :update-baseline? false :speed 3) (actions/play-animation entities :ego :cat-toy-last-half) (actions/play-animation entities :grandma :squat-1 :stop? false) @@ -283,7 +283,7 @@ :grandma "Come here young man.") (actions/walk-straight-to entities :ego [133 35]) (actions/talk entities :grandma "For your impressive display of courage and bravery, I give you this. ") - (sound! (sound "cat-tree/kiss.ogg") :play) + (sound! (sound "cat-tree/kiss.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :grandma :kiss) (actions/play-animation entities :ego :get-sick :stop? false) (actions/walk-straight-to entities :ego [165 45]) diff --git a/desktop/src-common/advent/screens/rooms/inside_antique.clj b/desktop/src-common/advent/screens/rooms/inside_antique.clj index 26794839..f78144bb 100644 --- a/desktop/src-common/advent/screens/rooms/inside_antique.clj +++ b/desktop/src-common/advent/screens/rooms/inside_antique.clj @@ -211,7 +211,7 @@ (actions/talk entities :ego "I'll just try one of these mints.") (actions/play-animation entities :ego :reach) (actions/update-state entities (fn [s] (assoc s :mints-eaten (inc (s :mints-eaten))))) - (sound! (sound (str "inside-antique/fire-" (get-in @entities [:state :mints-eaten]) ".ogg")) :play) + (sound! (sound (str "inside-antique/fire-" (get-in @entities [:state :mints-eaten]) ".ogg")) :play (utils/current-sound-volume)) (actions/play-animation entities :ego [:fire (get-in @entities [:state :mints-eaten])]) (actions/talk entities :ego "WOWZA! Those are hot.") (when (= 3 (get-in @entities [:state :mints-eaten])) diff --git a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj index 96c95186..3eda3237 100644 --- a/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj +++ b/desktop/src-common/advent/screens/rooms/inside_cafeteria.clj @@ -59,7 +59,7 @@ (if (actions/has-item? @entities :flask-1-strength) (do (actions/do-dialogue entities :ego "One sec.") - (sound! (sound "ego/potion.ogg") :play) + (sound! (sound "ego/potion.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :ego :grow :stop? false) (play-battle entities :win) (actions/do-dialogue entities diff --git a/desktop/src-common/advent/screens/rooms/inside_castle.clj b/desktop/src-common/advent/screens/rooms/inside_castle.clj index 68fbf27a..3d1e18ef 100644 --- a/desktop/src-common/advent/screens/rooms/inside_castle.clj +++ b/desktop/src-common/advent/screens/rooms/inside_castle.clj @@ -29,7 +29,7 @@ (begin [this screen entities] (particle-effect! (get-in entities [:room :entities :appear]) :reset) (particle-effect! (get-in entities [:room :entities :appear]) :start) - (sound! (sound "inside-house/disappear.ogg") :play) + (sound! (sound "inside-house/disappear.ogg") :play (utils/current-sound-volume)) (-> entities (assoc-in [:tweens :bloodclot-head-appear] (tween/tween :bloodclot-head-appear screen [:room :entities :bloodclot-head :opacity] 0.0 1.0 1.0 :ease tween/ease-in-quadratic)) @@ -101,7 +101,7 @@ :game-player "I don't have the might or courage required to pull the sword and fulfill the prophecy. " :game-player "The knights of Remington have muscles the size of tree trunks." :game-player "But me...") - (sound! (sound "inside-castle/flex.ogg") :play) + (sound! (sound "inside-castle/flex.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :game-player :flex) (actions/do-dialogue entities :game-player "I'd never be able to prove my strength.")) :choices actions/previous-choices} @@ -250,7 +250,7 @@ :cursor :up :script (actions/get-script entities (actions/walk-to entities :ego [182 90] :face :left) - (sound! (sound "door.ogg") :play) + (sound! (sound "door.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :ego :reach) (if (= :night (get-in @entities [:state :time])) (actions/talk entities :ego "It's locked.") @@ -443,12 +443,7 @@ entities) (if (= :night (get-in entities [:state :time])) (make-night entities) - entities) - #_(let [chorus - instance (sound! chorus :loop 0.0)] - (-> entities - (assoc-in [:room :chorus :sound] chorus) - (assoc-in [:room :chorus :instance] instance))))) + entities))) :update-fn (fn [screen entities] #_(when (and (actions/has-obtained? entities :sword) (get-in entities [:room :entities :magic]) @@ -464,8 +459,8 @@ (if (:instance chorus) (do (sound! (:sound chorus) :set-volume (:instance chorus) - chorus-volume) + (utils/current-sound-volume chorus-volume)) entities) (assoc-in entities [:room :chorus :instance] (sound! (:sound chorus) :loop - chorus-volume))))))) + (utils/current-sound-volume chorus-volume)))))))) :start-pos [245 90]))) diff --git a/desktop/src-common/advent/screens/rooms/inside_house.clj b/desktop/src-common/advent/screens/rooms/inside_house.clj index 68633645..6af2e49a 100644 --- a/desktop/src-common/advent/screens/rooms/inside_house.clj +++ b/desktop/src-common/advent/screens/rooms/inside_house.clj @@ -95,7 +95,7 @@ :wizard "Ok, I'll deliver them myself. Don't touch anything while I'm gone.") (actions/update-state entities (fn [s] (assoc s :mints-eaten 0 :wizard-left? true))) - (sound! (sound "inside-house/disappear.ogg") :play) + (sound! (sound "inside-house/disappear.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :wizard :disappear :stop? false) (actions/remove-entity entities :wizard))} "Nevermind." diff --git a/desktop/src-common/advent/screens/rooms/outside_house.clj b/desktop/src-common/advent/screens/rooms/outside_house.clj index a5a48f8e..0d8dc69c 100644 --- a/desktop/src-common/advent/screens/rooms/outside_house.clj +++ b/desktop/src-common/advent/screens/rooms/outside_house.clj @@ -279,7 +279,7 @@ entities (actions/walk-to entities :ego [267 90]) (actions/talk entities :ego (str "Anyone home?")) - (sound! (sound "door.ogg") :play) + (sound! (sound "door.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :ego :reach) (if (= :night (get-in @entities [:state :time])) (actions/talk entities :ego "It's locked.") diff --git a/desktop/src-common/advent/screens/rooms/space.clj b/desktop/src-common/advent/screens/rooms/space.clj index acf460fe..3fb46592 100644 --- a/desktop/src-common/advent/screens/rooms/space.clj +++ b/desktop/src-common/advent/screens/rooms/space.clj @@ -32,7 +32,7 @@ (not (get-in entities [:state :blergh-dead?])) (actions/has-item? entities :magic-slingshot)) ((actions/get-script entities - (sound! (sound "space/shock.ogg") :play) + (sound! (sound "space/shock.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :bloodclot-head :shoot :stop? false) (actions/begin-animation entities :bloodclot-head :keep-shoot) (actions/do-dialogue entities :bloodclot-head "Dang! Come a little closer!")) @@ -56,7 +56,7 @@ (begin [this screen entities] (particle-effect! (get-in entities [:room :entities :appear]) :reset) (particle-effect! (get-in entities [:room :entities :appear]) :start) - (sound! (sound "inside-house/disappear.ogg") :play) + (sound! (sound "inside-house/disappear.ogg") :play (utils/current-sound-volume)) (-> entities (assoc-in [:tweens :bloodclot-head-appear] (tween/tween :bloodclot-head-appear screen [:room :entities :bloodclot-head :opacity] 1.0 0.0 1.0 :ease tween/ease-in-cubic)) @@ -85,7 +85,7 @@ (actions/run-action entities (begin [this screen entities] - (sound! (sound "space/jump.ogg") :play) + (sound! (sound "space/jump.ogg") :play (utils/current-sound-volume)) (-> entities (assoc-in [:room :entities :cloud] (assoc (texture "space/cloud.png") :x (- (get-in entities [:room :entities :ego :x]) 10) @@ -132,7 +132,7 @@ (actions/run-action entities (begin [this screen entities] - (sound! (sound "space/swingsword.ogg") :play) + (sound! (sound "space/swingsword.ogg") :play (utils/current-sound-volume)) (-> entities (update-in [:room :entities :ego] #(actions/start-animation screen % :swing)) @@ -232,7 +232,7 @@ (actions/do-dialogue entities :bloodclot-head "Ha ha ha! Is that the best you can do?" :bloodclot-head "Take this!") - (sound! (sound "space/shock.ogg") :play) + (sound! (sound "space/shock.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :bloodclot-head :shoot :stop? false) (actions/begin-animation entities :bloodclot-head :keep-shoot) (actions/play-animation entities :ego :shock :stop? false) diff --git a/desktop/src-common/advent/screens/safe.clj b/desktop/src-common/advent/screens/safe.clj index 8ccece6b..bd064115 100644 --- a/desktop/src-common/advent/screens/safe.clj +++ b/desktop/src-common/advent/screens/safe.clj @@ -82,7 +82,7 @@ (when (:shown? entities) (let [[x y] (utils/unproject screen)] (if-let [button (get-button [x y])] - (do (sound! (:sound button) :play) + (do (sound! (:sound button) :play (utils/current-sound-volume)) (let [new-state (update-in entities [:button-choices] #(conj % (:id button)))] (cond (= [4 2 1 5 3] (:button-choices new-state)) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index b899da40..6c37ef27 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -104,7 +104,7 @@ (defn drink-blergh [entities] (actions/walk-straight-to entities :ego [205 45]) - (sound! (sound "ego/potion.ogg") :play) + (sound! (sound "ego/potion.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :ego :grow :stop? false) (actions/do-dialogue entities :blergh "What this? A potion of strength?" @@ -290,7 +290,7 @@ :else (do (actions/talk entities :ego "I'll just take a sip!") - (sound! (sound "ego/potion.ogg") :play) + (sound! (sound "ego/potion.ogg") :play (utils/current-sound-volume)) (actions/play-animation entities :ego :grow :stop? false)))) :recipe (actions/get-script entities (actions/do-dialogue entities :ego "The recipe says:" @@ -402,7 +402,7 @@ (defn fade-in-first-time-if-necessary [screen entities] (if (not (get-in entities [:started? :value])) - (do (music! (utils/get-current-music entities) :set-volume (get-in entities [:volume :value])) + (do (music! (utils/get-current-music entities) :set-volume (utils/current-music-volume (get-in entities [:volume :value]))) (utils/play-sound (get-in entities [:musics (actions/get-music (get-in entities [:room :music]) (get-in entities [:state :time]))])) (assoc entities :tweens {:fade-in (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 1.0 :ease tween/ease-in-cubic) @@ -429,7 +429,7 @@ vol (* vol vol-scale) vol (max vol 0.005)] (sound! (or (snd e) - (snd (:sounds entities))) :play vol 1.0 pan)))))) + (snd (:sounds entities))) :play (utils/current-sound-volume vol) 1.0 pan)))))) (defn update-from-room [screen entities] (if-let [update-fn (get-in entities [:room :update-fn])] @@ -629,7 +629,7 @@ (play-key-sounds entities)) (doseq [m (vals (get-in entities [:musics]))] (when m - (music! m :set-volume (get-in entities [:volume :value])))) + (music! m :set-volume (utils/current-music-volume (get-in entities [:volume :value]))))) (doseq [e (sort-by :baseline all-entities)] (if (:parallax e) (render-parallax screen e) diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 2c6f1c7d..c864b5c9 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -36,6 +36,7 @@ (fn [screen entities] (let [cam (orthographic) viewport (FitViewport. 1280 960 cam)] + (utils/load-settings!) (update! screen :renderer (stage) :camera cam :viewport viewport) (.apply viewport) (let [font (utils/get-font "ego/font.fnt") @@ -43,7 +44,8 @@ start-playing (center start-playing) quit (assoc (label "Quit thy adventure" (style :label font (color 0.6 1.0 1.0 1.0))) :x 0 :y 50) quit (center quit) - music (utils/make-music "intro.ogg")] + music (utils/make-music "intro.ogg") + ui-skin (skin "ui/ui.json")] (label! start-playing :set-alignment Align/center) {:overlay (assoc (texture "title-overlay.png" ) :x 0 :y 0 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0) @@ -51,6 +53,16 @@ :scale-x 80 :scale-y 80 :opacity 1.0) + :music-volume-slider (assoc (slider {:min 0 :max 100 :step 1} ui-skin :set-value (:music-volume @utils/settings)) + :x ( - (/ (game :width) 2) + 150) + :width 300 + :y 200) + :sound-volume-slider (assoc (slider {:min 0 :max 100 :step 1 } ui-skin :set-value (:sound-volume @utils/settings)) + :width 300 + :x ( - (/ (game :width) 2) + 150) + :y 150) :viewport viewport :font font :music music @@ -60,8 +72,7 @@ :quit quit :tweens {:fade-in (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 1.0 :finish #(do (utils/play-sound (:music %)) %) - :ease tween/ease-in-quadratic)} - }))) + :ease tween/ease-in-quadratic)}}))) :on-render (fn [screen [entities]] @@ -71,8 +82,8 @@ (clear!) (let [entities (utils/apply-tweens screen entities (:tweens entities))] - (music! (:music entities) :set-volume 0.0 #_(:volume entities)) - (render! screen [(:overlay entities) (:start-playing entities) (:quit entities) (:fade entities)]) + (music! (:music entities) :set-volume (utils/current-music-volume (:volume entities))) + (render! screen [(:overlay entities) (:start-playing entities) (:quit entities) (:music-volume-slider entities) (:sound-volume-slider entities) (:fade entities) ]) entities)) :show-screen (fn [entities] @@ -83,6 +94,14 @@ (style-label (:start-playing entities) (get-in entities [:font]) [x y]) (style-label (:quit entities) (get-in entities [:font]) [x y]) entities)) + :on-ui-changed + (fn [screen [entities]] + (swap! utils/settings + assoc + :music-volume (slider! (:music-volume-slider entities) :get-value) + :sound-volume (slider! (:sound-volume-slider entities) :get-value)) + (utils/save-settings!) + entities) :on-touch-up (fn [screen [entities]] (let [[x y] (utils/unproject screen)] @@ -97,7 +116,7 @@ entities) :ease tween/ease-in-cubic)) (assoc-in [:tweens :fade-out-music] - (tween/tween :fade-out-music screen [:volume] 1.0 0.0 1.8))) + (tween/tween :fade-out-music screen [:volume] 1.0 0.0 1.0))) (utils/intersects? (:quit entities) [x y]) (-> entities (assoc-in [:tweens :fade-out] @@ -111,6 +130,5 @@ nil))) :on-resize (fn [screen [entities]] - (println (game :width) (game :height) (:width screen) (:height screen)) (.update (:viewport entities) (game :width) (game :height) true) nil)) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 70d976cc..a963b4a5 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -5,6 +5,7 @@ [play-clj.utils :refer :all] [play-clj.math :refer :all] [play-clj.g2d :refer :all] + [clojure.java.io :as io] [clojure.edn :as edn]) (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter] [com.badlogic.gdx.graphics.g2d TextureRegion] @@ -18,6 +19,19 @@ (def +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :watch :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot]) +(def settings (atom {:music-volume 50.0 + :sound-volume 75.0})) + +(defn current-music-volume [& [factor]] + (* (Math/pow (/ (:music-volume @settings) 100.0) 2) + 0.25 + (or factor 1.0))) + +(defn current-sound-volume [& [factor]] + (* (Math/pow (/ (:sound-volume @settings) 100.0) 2) + 0.5 + (or factor 1.0))) + (defn cursor [filename which] (let [scale 2 base-cursor (pixmap filename) @@ -36,6 +50,13 @@ (defn load [] (assoc (edn/read-string (slurp "save.edn")) :active? true)) +(defn load-settings! [] + (when (.exists (io/file "settings.edn")) + (reset! settings (edn/read-string (slurp "settings.edn"))))) + +(defn save-settings! [] + (spit "settings.edn" @settings)) + (defn get-font [filename] (let [font (bitmap-font filename) tr (bitmap-font! font :get-region)