chorus. cool.

This commit is contained in:
2015-03-03 13:51:54 -08:00
parent 81c3d702aa
commit 820aa48f4a
3 changed files with 70 additions and 38 deletions

View File

@@ -11,6 +11,12 @@
[play-clj.ui :refer :all]
[play-clj.utils :refer :all]
[play-clj.g2d :refer :all]))
(defn get-chorus-volume [entities]
(let [ego (get-in entities [:room :entities :ego])]
(if (> (:y ego) 112)
0.0
(* (max 0.0 (- 1.0 (/ (utils/dist 45 97 (:x ego) (:y ego)) 50.0)))
(- 1.0 (get-in entities [:fade :opacity]))))))
(defn bloodclot-appear [entities]
(actions/run-action entities
@@ -302,12 +308,13 @@
:fn (fn [screen entities]
(let [magic (get-in entities [:room :entities :magic])]
(cond (nil? magic)
(assoc-in entities [:room :entities :magic] (assoc (doto (particle-effect "inside-castle/magic")
(particle-effect! :reset)
)
:x 25
:y 112
:baseline 240))
(do
(assoc-in entities [:room :entities :magic] (assoc (doto (particle-effect "inside-castle/magic")
(particle-effect! :reset)
)
:x 25
:y 108
:baseline 240)))
(particle-effect! magic :is-complete)
(do
(doto magic
@@ -414,6 +421,7 @@
(actions/give entities :monocle)
(actions/talk entities :ego "It looks like a monocle."))}))
:chorus {:sound (sound "inside-castle/chorus.wav")}
:collision "inside-castle/collision.png"
:scale-fn (utils/scaler-fn-from-image "inside-castle/scale.png" 0.25 1.00)
:apply-state (fn [entities]
@@ -426,5 +434,25 @@
entities)
(if (= :night (get-in entities [:state :time]))
(make-night entities)
entities)))
entities)
#_(let [chorus
instance (sound! chorus :loop 0.0)]
(-> entities
(assoc-in [:room :chorus :sound] chorus)
(assoc-in [:room :chorus :instance] instance)))))
:update-fn (fn [screen entities]
(let [chorus-volume (get-chorus-volume entities)]
(if (= 0.0 chorus-volume)
(if (get-in entities [:room :chorus :instance])
(do (sound! (get-in entities [:room :chorus :sound]) :stop)
(update-in entities [:room :chorus] dissoc :instance))
entities)
(let [chorus (get-in entities [:room :chorus])]
(if (:instance chorus)
(do (sound! (:sound chorus) :set-volume
(:instance chorus)
chorus-volume)
entities)
(assoc-in entities [:room :chorus :instance] (sound! (:sound chorus) :loop
chorus-volume)))))))
:start-pos [245 90])))