almost everything is functional again.

This commit is contained in:
Bryce Covert
2016-08-10 08:58:39 -07:00
parent 130d9e1b1f
commit ee59cbbbe8
6 changed files with 63 additions and 34 deletions

View File

@@ -134,12 +134,15 @@
(= 0.0 (get-in entities [:fade :opacity])))
(let [[[logo & msg] & remaining-messages] (:remaining-messages entities)]
(if msg
(-> entities
(fade-logo-if-necessary screen logo)
(assoc :credit-table (msg->table msg entities))
(assoc-in [:tweens [:fade :in]] (chain-tweens screen entities))
(assoc :remaining-messages remaining-messages)
(assoc :last-logo logo))
(do
(utils/clear-stage screen)
(-> entities
(fade-logo-if-necessary screen logo)
(assoc :credit-table (->> (msg->table msg entities)
(utils/add-actor-to-stage screen)))
(assoc-in [:tweens [:fade :in]] (chain-tweens screen entities))
(assoc :remaining-messages remaining-messages)
(assoc :last-logo logo)))
(do (set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen))
entities)))
entities))
@@ -147,7 +150,7 @@
(defscreen credits
:on-show
(fn [screen entities]
(fn [screen entities options]
(utils/setup-viewport screen 1280 960)
(graphics! :set-cursor (utils/cursor "cursor.png" :main))
(let [font (bitmap-font "ego/font.fnt" )]
@@ -185,24 +188,24 @@
:tweens {:fade-in
(tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}}))
:on-key-up
(fn [screen entities]
(fn [screen entities options]
(when (= (key-code :escape) (:key screen))
(utils/toggle-fullscreen!))
nil)
:on-render
(fn [{:keys [^FitViewport viewport] :as screen} entities]
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
(.apply viewport)
(let [entities (utils/apply-tweens screen entities (:tweens entities))
entities (start-message-if-necessary screen entities)]
(let [entities (start-message-if-necessary screen entities)
entities (utils/apply-tweens screen entities (:tweens entities))]
(clear!)
(render! screen [(:bg entities) (:credit-table entities) (:fade entities) (:dbh entities) (:pos entities)])
entities))
:on-touch-up (fn [screen entities]
:on-touch-up (fn [screen entities options]
(set-screen! @(resolve 'advent.core/advent) @(resolve 'advent.screens.title/title-screen)))
:on-resize (fn [{:keys [width height ^FitViewport viewport]} entities]
:on-resize (fn [{:keys [^FitViewport viewport]} entities {:keys [width height]}]
(.update viewport width height)))

View File

@@ -70,8 +70,8 @@
(assoc :source-x source-x :source-y source-y)
(doto
(label! :set-wrap true)
(#(label! % :set-width (min 700 (+ 50 (label! % :get-width)))))
))
(#(label! % :set-width (min 700 (+ 50 (label! % :get-width))))))
(#(utils/add-actor-to-stage screen %)))
x (- x (/ (label! talk :get-width) 2))
talk (assoc talk :x x :y y :id id)
talk (ensure-on-screen talk)]
@@ -94,6 +94,7 @@
:stop-talk
(fn [screen entities {:keys [id]}]
(utils/remove-actor-from-stage entities (or id :fg-actions))
(dissoc entities (or id :fg-actions)))
@@ -154,7 +155,8 @@
(label! :set-x (:x e))
(label! :set-y (:y e))
(label! :set-height (:height e))
(label! :set-font-scale 0.25))]))
(label! :set-font-scale 0.25)
(#(utils/add-actor-to-stage screen %)))]))
(assoc-in [:state :choices] choices)
(assoc-in [:state :callback] callback)
(assoc-in [:state :np :height] (* choice-height (inc choice-count))))))
@@ -163,6 +165,7 @@
(let [[x y] (utils/unproject screen options)]
(when (seq (get-in entities [:state :choices]))
(when-let [choice (first (filter #(utils/intersects? % [x y]) (vals entities)))]
(utils/clear-stage screen)
((get-in entities [:state :callback]) (:index choice))
(-> entities
(assoc-in [:state :callback] nil)
@@ -211,16 +214,20 @@
talk (label message style :set-alignment Align/center :set-font-scale 0.25)
x (- x (/ (label! talk :get-width) 2))
talk (assoc talk :x x :y y :opacity 1.0)
talk (ensure-on-screen talk)]
#_#_talk (ensure-on-screen talk)]
(utils/add-actor-to-stage screen talk)
(-> entities
(assoc :dialogue talk)
(assoc-in [:tweens :fade-out-toast]
(tween/tween :fade-out-toast screen [:dialogue :opacity] 1.0 0.0 1.0
:finish #(dissoc % :dialogue))))))
:finish #(do
(utils/remove-actor-from-stage entities :dialogue)
(dissoc % :dialogue)))))))
:stop-talk
(fn [_ entities {:keys [target-id]}]
(utils/remove-actor-from-stage entities :dialogue)
(dissoc entities :dialogue))

View File

@@ -111,10 +111,10 @@
(defscreen inventory-screen
:on-show
(fn [screen entities options]
(utils/setup-viewport screen 1280 960)
(let [hovered-text (assoc (label "Hello" (style :label (utils/get-font "ego/font.fnt") (color :white)) :set-font-scale 0.25) :x 0 :y 850 :width 1280 )]
(let [screen (utils/setup-viewport screen 1280 960)
hovered-text (assoc (label "Hello" (style :label (utils/get-font "ego/font.fnt") (color :white)) :set-font-scale 0.25) :x 0 :y 850 :width 1280 )]
(label! hovered-text :set-alignment Align/bottom)
(utils/add-actor-to-stage screen hovered-text)
{:overlay (assoc (utils/get-texture "inventory-overlay.png" ) :x 0 :y 0 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0 :opacity 0.0)
:fade (assoc (utils/get-texture "black.png")
:scale-x 80

View File

@@ -895,7 +895,7 @@ void main ()
(let [t (double total-time)]
(rem t (animation! animation :get-animation-duration))))
(defn animate [{:keys [anim anim-loop? anim-merges anim-start] :or {anim-loop? true} :as entity} {:keys [delta-time total-time] :or {delta-time 0} :as screen}]
(defn animate [{:keys [anim anim-loop? anim-merges anim-start] :or {anim-loop? true anim-start 0} :as entity} {:keys [delta-time total-time] :or {delta-time 0} :as screen}]
(let [delta-time (double delta-time)
total-time (double total-time)
anim-start (double anim-start)
@@ -1754,8 +1754,9 @@ void main ()
(defscreen hud
:on-show
(fn [screen entities options]
(let [screen (assoc screen :total-time 0)]
(utils/setup-viewport screen 320 240)
(let [screen (assoc screen :total-time 0)
screen (utils/setup-viewport screen 320 240)]
{:inv-fsm {:state :none
:state-data {}
@@ -1788,7 +1789,8 @@ void main ()
:mouse-in? (zone/box 278 0 320 42)
:opacity 0.8)
:all-items (texture! (texture (pixmap "cursor.png")) :split 18 16)
#_#_:fps (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.1)}))
:fps (->> (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.1)
(utils/add-actor-to-stage screen))}))
:on-render
(fn [{:keys [^FitViewport viewport] :as screen} entities options]
@@ -1818,13 +1820,14 @@ void main ()
(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)
(if hud-interactable?
(:inventory entities)
(assoc (:inventory entities) :opacity 0.5))
@@ -1869,7 +1872,6 @@ void main ()
:on-start-script
(fn [_ entities _]
(println "here")
(-> entities
(update-in [:inv-fsm :pending-states] conj [:none nil])
(assoc-in [:already-saved?] false)))

View File

@@ -481,27 +481,32 @@
(dissoc :save-menu)
(dissoc :chapters-menu)
(dissoc :settings-menu)
(assoc :main-menu (main-menu screen)))
(assoc :main-menu (->> (main-menu screen)
(utils/add-actor-to-stage screen))))
(#{:dont-delete-button } actor-key)
(as-> entities entities
(dissoc entities :confirm-delete)
(assoc entities :save-menu (saves-menu entities (:renderer screen))))
(assoc entities :save-menu (->> (saves-menu entities (:renderer screen))
(utils/add-actor-to-stage screen))))
(= :load actor-key)
(as-> entities entities
(dissoc entities :main-menu)
(assoc entities :save-menu (saves-menu entities (:renderer screen))))
(assoc entities :save-menu (->> (saves-menu entities (:renderer screen))
(utils/add-actor-to-stage screen))))
(= :chapters actor-key)
(-> entities
(dissoc :main-menu)
(assoc :chapters-menu (chapters-menu )))
(assoc :chapters-menu (->> (chapters-menu )
(utils/add-actor-to-stage screen))))
(= :settings actor-key)
(-> entities
(dissoc :main-menu)
(assoc :settings-menu (settings-menu)))
(assoc :settings-menu (->> (settings-menu)
(utils/add-actor-to-stage screen))))
(= :toggle-fullscreen actor-key)
(utils/toggle-fullscreen!)
@@ -522,7 +527,8 @@
(= :delete actor-key)
(as-> entities entities
(dissoc entities :save-menu)
(assoc entities :confirm-delete (confirm-delete entities)))
(assoc entities :confirm-delete (->> (confirm-delete entities)
(utils/add-actor-to-stage screen))))
(= :confirm-delete-button actor-key)
(do
@@ -530,7 +536,8 @@
(as-> entities entities
(dissoc entities :confirm-delete)
(assoc entities :saves-list (utils/snapshot-screenshots))
(assoc entities :save-menu (saves-menu entities (:renderer screen)))))
(assoc entities :save-menu (->> (saves-menu entities (:renderer screen))
(utils/add-actor-to-stage screen)))))
(:save e)
(do

View File

@@ -29,6 +29,16 @@
(.addListener ^Actor object listener))
entity)
(defn clear-stage [{:keys [^Stage renderer]}]
(.clear renderer))
(defn remove-actor-from-stage
([entities id]
(remove-actor-from-stage (id entities)))
([{:keys [^Actor object]}]
(when object
(.remove object))))
(defn log-coords [screen entities]
(let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})]
(log/info (:input-x screen) (:input-y screen) "->" x y)))