a lot of progress on the screenshot approach.

This commit is contained in:
Bryce Covert
2017-03-23 21:02:50 -07:00
parent 365cb205d6
commit dc58787bf6
9 changed files with 2360 additions and 2171 deletions

View File

@@ -15,4 +15,29 @@
:chapter-4 "Tick the Ex-con"
:chapter-5 "Slingshot Stew"})
(defn default-screenshot [state]
(let [answers {:inside-house "screenshots/inside-house.png"
:inside-stash "screenshots/inside-stash.png"
:outside-house {:day "screenshots/outside-house-day.png"
:night "screenshots/outside-house-night.png"}
:behind-house {:day "screenshots/behind-house-day.png"
:night "screenshots/behind-house-night.png"}
:cat-tree {:day "screenshots/cat-tree-day.png"
:night "screenshots/cat-tree-night.png"}
:inside-castle {:day "screenshots/inside-castle-day.png"
:night "screenshots/inside-castle-night.png"}
:space "screenshots/duel.png"
:held "screenshots/held.png"
:inside-cafeteria "screenshots/cafeteria.png"
:inside-antique "screenshots/inside-antique.png"
:inside-jail "screenshots/inside-jail.png"
:dream "screenshots/dream.png"
:castle-gate "screenshots/castle-gate.png"
:outside-jail {:day "screenshots/fountain-day.png"
:night "screenshots/fountain-night.png"}
:outside-castle {:day "screenshots/outside-castle-day.png"
:night "screenshots/outside-castle-night.png"}}]
(get-in answers [(:last-room state) (:time state)]
(get-in answers [(:last-room state)]))))

View File

@@ -1894,14 +1894,14 @@
(grow-hud screen entities :save false)))
entities (or (process-fsm screen entities) entities)]
(label! (:fps entities) :set-text (str (game :fps)))
#_(label! (:fps entities) :set-text (str (game :fps)))
(render! screen [ (if (and hud-interactable? (not (:already-saved? entities)))
(:save entities)
(assoc (:save entities) :opacity 0.5))
(:fps entities)
#_(:fps entities)
(if hud-interactable?
(:inventory entities)
(assoc (:inventory entities) :opacity 0.5))

View File

@@ -40,6 +40,7 @@
(def button-color (Color/valueOf "9b399eff"))
(def label-color (color 0.81 0.5 0.0 1.0))
(def disabled-label-color (color 0.3 0.3 0.3 1.0))
(defn style-label [e font mouse-pos]
(when (:interactable e)
@@ -172,6 +173,8 @@
([msg]
(make-label msg nil))
([msg col]
(make-label msg col utils/title-label-scale))
([msg col scale]
(let [font (utils/get-font "ego/font.fnt")
p (NinePatchEntity. (skin! (skin "ui/ui.json") :get-patch "ui-bg"))
@@ -179,7 +182,7 @@
bg (drawable :nine-patch ^NinePatch (:object p))
style (style :label font (or col (color 1.0 0.3 0.3 1.0)))
#_#__ (set! (.background style) bg)]
(-> style .font .getData (.setScale utils/title-label-scale))
(-> style .font .getData (.setScale scale))
(-> msg
(label style)
(assoc :x 0 :y 0 :height 40 :origin-x 0 :origin-y 0 :z 8)
@@ -202,8 +205,10 @@
(defn make-max-progress-bar [min max initial-value artificial-max & rest]
(let [ui-skin (skin "ui/ui.json")
_ (println initial-value)
slider (->
(max-progress-bar min max 1 false (skin! ui-skin :get "default-horizontal" Slider$SliderStyle) artificial-max)
(max-progress-bar min max 1.0 false (skin! ui-skin :get "default-horizontal" Slider$SliderStyle) artificial-max)
(doto (#(slider! % :set-value initial-value)))
(assoc
:hover (skin! ui-skin :get "default-horizontal-hover" Slider$SliderStyle)
:default (skin! ui-skin :get "default-horizontal" Slider$SliderStyle)
@@ -246,22 +251,29 @@
[(make-button "End Quest" :key :end-quest) :height (* utils/ui-scale 56) :width (* utils/ui-scale 250)]])))))
(defn chapters-menu []
(make-table [[(doto
(make-label "Our tale's beginning" label-color)
(label! :set-name "explanation")) :width (* utils/ui-scale 250) :height 40 :colspan 5]
:row
[(make-max-progress-bar 0.0 4.0 0.0 3.0 :key :current-chapter) :width (* utils/ui-scale 260) :height (* utils/ui-scale 50) :colspan 5]
:row
[(make-label "1" label-color) :height (* utils/ui-scale 32) :width 30 :pad-bottom (* utils/ui-scale 8)]
[(make-label "2" label-color) :height (* utils/ui-scale 32) :width 30 :pad-bottom (* utils/ui-scale 8)]
[(make-label "3" label-color) :height (* utils/ui-scale 32) :width 30 :pad-bottom (* utils/ui-scale 8)]
[(make-label "4" label-color) :height (* utils/ui-scale 32) :width 30 :pad-bottom (* utils/ui-scale 8)]
[(make-label "5" label-color) :height (* utils/ui-scale 32) :width 30 :pad-bottom (* utils/ui-scale 8)]
:row
[ (make-button "Back" :key :back) :height (* utils/button-scale 56) :width (* utils/button-scale 100) :colspan 2]
[ (make-label "") :height (* utils/button-scale 56) ]
[ (make-button "Start" :key :back) :height (* utils/button-scale 56) :width (* utils/button-scale 100) :colspan 2]]))
(let [_ (println (utils/get-chapters) )
chapter-count (->> (utils/get-chapters)
(vals)
(filter identity)
count
dec
(max 0))
selected-title (-> (utils/get-chapters) keys (nth chapter-count) saves/chapter-name )]
(make-table (concat [[(doto
(make-label selected-title label-color)
(label! :set-name "explanation")) :width (* utils/ui-scale 250) :height 40 :colspan 5]
:row
[(doto (make-max-progress-bar 0.0 4.0 chapter-count chapter-count :key :current-chapter)
(slider! :set-name "slider")) :width (* utils/ui-scale 260) :height (* utils/ui-scale 50) :colspan 5]
:row]
(map (fn [index [chapter v]]
[(make-label (str (inc index)) (if v label-color disabled-label-color)) :height (* utils/ui-scale 32) :width 30 :pad-bottom (* utils/ui-scale 8)])
(range)
(utils/get-chapters))
[:row
[ (make-button "Back" :key :back) :height (* utils/button-scale 56) :width (* utils/button-scale 100) :colspan 2]
[ (make-label "") :height (* utils/button-scale 56) ]
[ (make-button "Start" :key :start) :height (* utils/button-scale 56) :width (* utils/button-scale 100) :colspan 2]]))))
(defn settings-menu []
(let [fullscreen-button (make-checkbox "Fullscreen" (utils/is-fullscreen?) :key :toggle-fullscreen)
@@ -303,7 +315,8 @@
(image-button! :add (doto (Group. )
(.setSize (- cell-w 16) (- cell-h 16) )
(.setOrigin (/ (- cell-w 16) 2) (/ (- cell-h 16) 2))
(.addActor (:object (doto (image (texture screenshot))
(.addActor (:object (doto (image
screenshot)
(image! :set-size (- cell-w 16) (- cell-h 16)))))
(.addActor (:object (make-label (str "" (or blurb name)) label-color )))
@@ -417,7 +430,7 @@
:font font
:music music
:volume 1.0
:copyright (->> (make-label (str "© Digital Bounce House 2016 - v" (advent.version/version)) label-color)
:copyright (->> (make-label (str "© Digital Bounce House 2016 - v" (advent.version/version)) label-color 0.25)
(utils/add-actor-to-stage screen))
:tweens {:fade-in (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 1.0
:finish #(do
@@ -469,10 +482,8 @@
(= :current-chapter actor-key)
(do
(println
(label! (table! (actor! e :get-parent) :find-actor "explanation")
:set-text (saves/chapter-name (nth [:chapter-1 :chapter-2 :chapter-3 :chapter-4 :chapter-5] (int (slider! e :get-value)))))
)
(label! (table! (actor! e :get-parent) :find-actor "explanation")
:set-text (saves/chapter-name (nth [:chapter-1 :chapter-2 :chapter-3 :chapter-4 :chapter-5] (int (slider! e :get-value)))))
entities)
@@ -578,8 +589,12 @@
(text-button! (-> entities :save-menu :continue-button) :set-disabled true)
(text-button! (-> entities :save-menu :delete-button) :set-disabled true))))
(:chapter e)
(start-playing screen entities (:chapter e))
(= :start actor-key)
(do
(println "SELECTED chapter" (nth [:chapter-1 :chapter-2 :chapter-3 :chapter-4 :chapter-5]
(int (slider! (table! (actor! e :get-parent) :find-actor "slider") :get-value))))
(start-playing screen entities ((utils/get-chapters) (nth [:chapter-1 :chapter-2 :chapter-3 :chapter-4 :chapter-5]
(int (slider! (table! (actor! e :get-parent) :find-actor "slider") :get-value))))))
:else
entities))))

View File

@@ -175,9 +175,9 @@
(doall (for [snapshot (snapshot-list)]
(assoc-in snapshot [:screenshot]
(try (let [bytes (steam/get-bytes (:screenshot snapshot))]
(Pixmap. ^bytes bytes 0 (count bytes)))
(texture (Pixmap. ^bytes bytes 0 (count bytes))))
(catch Exception e
(Pixmap. 160 120 Pixmap$Format/RGB888)))))))
(get-texture (saves/default-screenshot (:state snapshot)))))))))
(defn save-chapter [entities chapter]
(let [prefs (.getPreferences (Gdx/app) "ticks-tales-saves")
@@ -253,7 +253,7 @@
(log/info "writing save file...")
(steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8"))
#_(on-gl (let [gl-func (fn []
(on-gl (let [gl-func (fn []
(log/info "Screenshot captured. Publishing for persistence")
(put! screenshot-chan [id (publish-screenshot-fn)]))]
(try-times gl-func 3)) )))]