first step at dialogue trees.
This commit is contained in:
@@ -4,7 +4,8 @@
|
||||
[play-clj.utils :refer :all]
|
||||
[play-clj.g2d :refer :all]
|
||||
[clojure.pprint]
|
||||
[advent.pathfind])
|
||||
[advent.pathfind]
|
||||
#_[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]))
|
||||
@@ -52,3 +53,36 @@
|
||||
|
||||
:on-resize (fn [screen entities]
|
||||
(size! screen 1280 960)))
|
||||
|
||||
(defscreen choice-screen
|
||||
:on-show
|
||||
(fn [screen entities]
|
||||
(update! screen :renderer (stage) :camera (orthographic))
|
||||
{})
|
||||
|
||||
:on-render
|
||||
(fn [screen [entities]]
|
||||
(render! screen (vals entities))
|
||||
entities)
|
||||
|
||||
:on-present-choices
|
||||
(fn [{:keys [pairs]} [entities]]
|
||||
(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)])))))
|
||||
|
||||
: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)))))
|
||||
{}))))
|
||||
|
||||
:on-resize (fn [screen entities]
|
||||
(size! screen 1280 960)))
|
||||
|
||||
Reference in New Issue
Block a user