nice transitions.
This commit is contained in:
BIN
desktop/resources/black.png
Normal file
BIN
desktop/resources/black.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
@@ -149,14 +149,35 @@
|
|||||||
(defn transition-background [entities new-background [x y]]
|
(defn transition-background [entities new-background [x y]]
|
||||||
(run-action entities
|
(run-action entities
|
||||||
(begin [this screen entities]
|
(begin [this screen entities]
|
||||||
|
|
||||||
(-> entities
|
(-> entities
|
||||||
|
(assoc-in [:transition]
|
||||||
|
(assoc (texture "black.png")
|
||||||
|
:scale-x 20
|
||||||
|
:scale-y 20
|
||||||
|
:baseline 9500
|
||||||
|
:opacity 0.1))))
|
||||||
|
|
||||||
|
(continue [this screen entities]
|
||||||
|
(update-in entities [:transition :opacity] + 0.075))
|
||||||
|
|
||||||
|
(done? [this screen entities]
|
||||||
|
(>= (get-in entities [:transition :opacity]) 1.0))
|
||||||
|
|
||||||
|
(terminate [this screen entities]
|
||||||
|
entities))
|
||||||
|
(run-action entities
|
||||||
|
(begin [this screen entities]
|
||||||
|
(-> entities
|
||||||
(assoc-in [:background] (get-in entities [:backgrounds new-background]))
|
(assoc-in [:background] (get-in entities [:backgrounds new-background]))
|
||||||
(assoc-in [:ego :x] x)
|
(assoc-in [:ego :x] x)
|
||||||
(assoc-in [:ego :y] y)))
|
(assoc-in [:ego :y] y)))
|
||||||
|
|
||||||
(continue [this screen entities] entities)
|
(continue [this screen entities]
|
||||||
|
(update-in entities [:transition :opacity] - 0.075))
|
||||||
|
|
||||||
(done? [this screen entities] true)
|
(done? [this screen entities]
|
||||||
|
(<= (get-in entities [:transition :opacity]) 0.0))
|
||||||
|
|
||||||
(terminate [this screen entities]
|
(terminate [this screen entities]
|
||||||
entities)))
|
(dissoc entities :transition))))
|
||||||
|
|||||||
@@ -10,9 +10,10 @@
|
|||||||
[advent.utils :as utils]
|
[advent.utils :as utils]
|
||||||
[advent.screens.dialogue :refer [talking-screen]]
|
[advent.screens.dialogue :refer [talking-screen]]
|
||||||
[clojure.core.async :refer [put! <! <!! >! chan go thread take! alts!!]])
|
[clojure.core.async :refer [put! <! <!! >! chan go thread take! alts!!]])
|
||||||
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter]
|
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter GL20 GL30]
|
||||||
[com.badlogic.gdx.graphics.g2d TextureRegion]
|
[com.badlogic.gdx.graphics.g2d TextureRegion]
|
||||||
[java.lang Object]))
|
[java.lang Object]
|
||||||
|
[com.badlogic.gdx Gdx]))
|
||||||
|
|
||||||
(def +screen-width+ 320)
|
(def +screen-width+ 320)
|
||||||
(def +screen-height+ 240)
|
(def +screen-height+ 240)
|
||||||
@@ -206,6 +207,8 @@
|
|||||||
:on-render
|
:on-render
|
||||||
(fn [screen [entities]]
|
(fn [screen [entities]]
|
||||||
(clear!)
|
(clear!)
|
||||||
|
(.glEnable (.getGL20 Gdx/graphics) GL20/GL_BLEND)
|
||||||
|
#_(.glEnable (.getGL30 Gdx/graphics) GL30/GL_BLEND)
|
||||||
(let [entities (update-cursor screen entities)
|
(let [entities (update-cursor screen entities)
|
||||||
entities (update-from-script screen entities)
|
entities (update-from-script screen entities)
|
||||||
entities (update-in entities [:background :entities] (fn [entities] (map #(animate % screen) entities)))
|
entities (update-in entities [:background :entities] (fn [entities] (map #(animate % screen) entities)))
|
||||||
|
|||||||
Reference in New Issue
Block a user