pop logo
This commit is contained in:
BIN
desktop/resources/music/POPPixelLogo2Audiomix_mixdown.ogg
Normal file
BIN
desktop/resources/music/POPPixelLogo2Audiomix_mixdown.ogg
Normal file
Binary file not shown.
@@ -25,13 +25,13 @@
|
|||||||
|
|
||||||
(defn fade-in [screen e thing then]
|
(defn fade-in [screen e thing then]
|
||||||
(assoc-in e [:tweens :fade-in]
|
(assoc-in e [:tweens :fade-in]
|
||||||
(tween/tween :fade-in screen [thing :opacity] 0.0 1.0 5.0
|
(tween/tween :fade-in screen [thing :opacity] 0.0 1.0 1.0
|
||||||
:finish then
|
:finish then
|
||||||
:ease tween/ease-in-quadratic)))
|
:ease tween/ease-in-quadratic)))
|
||||||
|
|
||||||
(defn fade-out [screen e thing then]
|
(defn fade-out [screen e thing then]
|
||||||
(assoc-in e [:tweens :fade-out]
|
(assoc-in e [:tweens :fade-out]
|
||||||
(tween/tween :fade-out screen [thing :opacity] 1.0 0.0 5.0
|
(tween/tween :fade-out screen [thing :opacity] 1.0 0.0 1.0
|
||||||
:finish then
|
:finish then
|
||||||
:ease tween/ease-in-quadratic)))
|
:ease tween/ease-in-quadratic)))
|
||||||
|
|
||||||
@@ -49,6 +49,48 @@
|
|||||||
entity))
|
entity))
|
||||||
|
|
||||||
|
|
||||||
|
(defn update-from-step [screen {:keys [current-step steps] :as entities}]
|
||||||
|
(if current-step
|
||||||
|
(if (>= (or (:total-time screen) 0.0) (+ (:duration current-step) (:started current-step)))
|
||||||
|
(assoc entities :current-step nil)
|
||||||
|
entities)
|
||||||
|
|
||||||
|
(let [[current-step & steps] steps]
|
||||||
|
(if current-step
|
||||||
|
(assoc ((:do current-step) screen entities)
|
||||||
|
:current-step (assoc current-step
|
||||||
|
:started (:total-time screen))
|
||||||
|
:steps steps)
|
||||||
|
entities))))
|
||||||
|
|
||||||
|
(def steps
|
||||||
|
[{:can-skip false
|
||||||
|
:do (fn [screen entities]
|
||||||
|
(fade-in screen entities :dbhlogo identity))
|
||||||
|
:duration 1.0}
|
||||||
|
{:can-skip true
|
||||||
|
:do (fn [screen entities]
|
||||||
|
entities)
|
||||||
|
:duration 2.0}
|
||||||
|
{:can-skip false
|
||||||
|
:do (fn [screen entities]
|
||||||
|
(fade-out screen entities :dbhlogo identity))
|
||||||
|
:duration 2.0}
|
||||||
|
{:can-skip true
|
||||||
|
:do (fn [screen entities]
|
||||||
|
(utils/play-music (:pop-music entities))
|
||||||
|
(-> entities
|
||||||
|
(assoc-in [:pop-logo :anim-start] (:total-time screen))
|
||||||
|
(assoc-in [:pop-logo :anim] (get-in entities [:pop-logo :main-anim]))))
|
||||||
|
:duration 10.0}
|
||||||
|
{:can-skip false
|
||||||
|
:do (fn [screen entities]
|
||||||
|
(utils/stop-music (:pop-music entities))
|
||||||
|
(set-screen! @(resolve 'advent.core/advent) title/title-screen)
|
||||||
|
entities)
|
||||||
|
:duration 0.0}])
|
||||||
|
|
||||||
|
|
||||||
(defscreen splash-screen
|
(defscreen splash-screen
|
||||||
:on-show
|
:on-show
|
||||||
(fn [screen entities]
|
(fn [screen entities]
|
||||||
@@ -72,20 +114,11 @@
|
|||||||
:origin-x 0 :origin-y 0
|
:origin-x 0 :origin-y 0
|
||||||
:scale-x 4 :scale-y 4
|
:scale-x 4 :scale-y 4
|
||||||
:z 1)
|
:z 1)
|
||||||
:dbhlogo (assoc (utils/get-texture "dbh.png") :x 0 :y 0 :origin-x 0 :origin-y 0 :z 1 :opacity 0.0)}]
|
:dbhlogo (assoc (utils/get-texture "dbh.png") :x 0 :y 0 :origin-x 0 :origin-y 0 :z 1 :opacity 0.0)
|
||||||
(fade-in screen entities :dbhlogo
|
:steps steps
|
||||||
(fn [entities]
|
:pop-music (utils/make-music "music/POPPixelLogo2Audiomix_mixdown.ogg")
|
||||||
(fade-out (assoc-in screen [:total-time] 5.0) entities :dbhlogo
|
:current-step nil}]
|
||||||
(fn [entities]
|
entities))
|
||||||
(as-> entities entities
|
|
||||||
(assoc-in entities [:pop-logo :anim-start ] 10.0)
|
|
||||||
(assoc-in entities [:pop-logo :anim] (get-in entities [:pop-logo :main-anim]))
|
|
||||||
(fade-in (assoc-in screen [:total-time] 10.0) entities :pop-logo
|
|
||||||
(fn [entities]
|
|
||||||
(fade-out (assoc-in screen [:total-time] 15.0) entities :pop-logo
|
|
||||||
(fn [entities]
|
|
||||||
(set-screen! @(resolve 'advent.core/advent) title/title-screen)
|
|
||||||
entities)))))))))))
|
|
||||||
|
|
||||||
|
|
||||||
:on-render
|
:on-render
|
||||||
@@ -94,12 +127,21 @@
|
|||||||
(.apply viewport)
|
(.apply viewport)
|
||||||
(clear!)
|
(clear!)
|
||||||
(let [entities (utils/apply-tweens screen entities (:tweens entities))
|
(let [entities (utils/apply-tweens screen entities (:tweens entities))
|
||||||
entities (update-in entities [:pop-logo] animate screen)]
|
entities (update-in entities [:pop-logo] animate screen)
|
||||||
|
entities (if (and (:queued-skip? entities) (get-in entities [:current-step :can-skip]))
|
||||||
|
(assoc entities :queued-skip? false :current-step nil)
|
||||||
|
entities)
|
||||||
|
entities (update-from-step screen entities)]
|
||||||
(render! screen (sort-by :z (filter :object (vals entities))) )
|
(render! screen (sort-by :z (filter :object (vals entities))) )
|
||||||
entities))
|
entities))
|
||||||
|
|
||||||
:show-screen (fn [entities]
|
:show-screen (fn [entities]
|
||||||
entities)
|
entities)
|
||||||
|
|
||||||
|
:on-touch-up (fn [screen [entities]]
|
||||||
|
(if (get-in entities [:current-step :can-skip])
|
||||||
|
(assoc entities :current-step nil :queued-skip? false)
|
||||||
|
(assoc entities :queued-skip? true)))
|
||||||
|
|
||||||
:on-key-up
|
:on-key-up
|
||||||
(fn [screen entities]
|
(fn [screen entities]
|
||||||
|
|||||||
Reference in New Issue
Block a user