dialogue tree improvements.

This commit is contained in:
2014-09-24 18:39:07 -07:00
parent f90ae6b7c3
commit 240af5dcf0
3 changed files with 62 additions and 47 deletions

View File

@@ -5,10 +5,12 @@
[play-clj.g2d :refer :all]
[clojure.pprint]
[advent.pathfind]
[clojure.core.async :refer [put! <! <!! >! >!! chan go thread take! alts!!]]
#_[advent.screens.scene :as scene])
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter]
[com.badlogic.gdx.graphics.g2d TextureRegion]
[com.badlogic.gdx.scenes.scene2d.utils Align]))
[com.badlogic.gdx.scenes.scene2d.utils Align]
[com.badlogic.gdx Screen]))
(defn ensure-on-screen [talk]
(let [margin-width (* 0.05 (game :width))
@@ -34,7 +36,7 @@
(fn [{:keys [create-talk target-id text x y scale]} [entities]]
(let [font (bitmap-font "ego/font.fnt" )
tr (bitmap-font! font :get-region)
scale (or (max scale 0.75) 1)
scale (or (min (max scale 0.75) 1) 1)
width (/ (game :width) 1.5)
tx (.getTexture tr)
_ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
@@ -70,18 +72,17 @@
(let [font (bitmap-font "ego/font.fnt" )
tr (bitmap-font! font :get-region)
scale 1
width (/ (game :width) 1.5)
tx (.getTexture tr)
_ (texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)]
(into entities (for [[[text result-script] i] (map vector pairs (range))]
(do (println result-script)
[i (assoc (label text (style :label font (color :white))) :x 0 :y (* 20 i) :result-script result-script)])))))
[i (assoc (label text (style :label font (color :white))) :x 30 :y (* 30 i) :result-script result-script)]))))
:on-touch-down (fn [screen [entities]]
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(when (seq entities)
(when (< y (* 20 (count entities)))
(run! @(resolve 'advent.screens.scene/scene) :on-start-script :script (:result-script (entities (int (/ y 20)))))
(when (< y (* 30 (count entities)))
(run! @(resolve 'advent.screens.scene/scene) :on-resume)
(run! @(resolve 'advent.screens.scene/scene) :on-start-script :script (:result-script (entities (int (/ y 30)))))
{}))))
:on-resize (fn [screen entities]