new screen stuff.
This commit is contained in:
@@ -36,7 +36,7 @@
|
||||
:y y
|
||||
:baseline (- 240 y))]
|
||||
(if (:scaled entity)
|
||||
(assoc entity :scale-x (scale-fn y) :scale-y (scale-fn y))
|
||||
(assoc entity :scale-x (scale-fn [x y]) :scale-y (scale-fn [x y]))
|
||||
entity)))
|
||||
|
||||
(defn start-animation [screen entity anim]
|
||||
@@ -169,8 +169,9 @@
|
||||
(begin [this screen entities]
|
||||
(let [_ (swap! initial-time #(or % (:total-time screen)))
|
||||
target-y (get-in entities [:room :entities target-id :y])
|
||||
target-x (get-in entities [:room :entities target-id :x])
|
||||
scale-fn (get-in entities [:room :scale-fn])
|
||||
scale (scale-fn target-y)
|
||||
scale (scale-fn [target-x target-y])
|
||||
height (* scale 36)]
|
||||
(run! dialogue/talking-screen :on-talk :text text
|
||||
:x (get-in entities [:room :entities target-id :x]) :y (+ (get-in entities [:room :entities target-id :y]) height)
|
||||
|
||||
@@ -21,6 +21,11 @@
|
||||
(actions/walk-to entities :ego [310 80])
|
||||
(actions/transition-background entities :outside-house [0 80]))
|
||||
:cursor :right}
|
||||
:door {:box [66 180 85 195]
|
||||
:script (actions/get-script
|
||||
entities
|
||||
(actions/walk-to entities :ego [82 180])
|
||||
(actions/transition-background entities :inside-castle [280 145]))}
|
||||
:garden {:box [103 170 178 200]
|
||||
:script (actions/get-script
|
||||
entities
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
[advent.screens.rooms :as rooms]
|
||||
[advent.screens.rooms.outside-house :as rooms.outside-house]
|
||||
[advent.screens.rooms.inside-house :as rooms.inside-house]
|
||||
[advent.screens.rooms.inside-castle :as rooms.inside-castle]
|
||||
[advent.screens.rooms.behind-house :as rooms.behind-house]
|
||||
[advent.screens.rooms.outside-castle :as rooms.outside-castle]
|
||||
[advent.screens.rooms.cat-tree :as rooms.cat-tree]
|
||||
@@ -138,6 +139,7 @@
|
||||
:outside-house (rooms.outside-house/make screen)
|
||||
:behind-house (rooms.behind-house/make screen)
|
||||
:cat-tree (rooms.cat-tree/make screen)
|
||||
:inside-castle (rooms.inside-castle/make screen)
|
||||
:outside-castle (rooms.outside-castle/make screen)}]
|
||||
{:rooms rooms
|
||||
:state {:object nil
|
||||
|
||||
@@ -38,12 +38,22 @@
|
||||
|
||||
(defn scaler-fn-with-baseline [baseline minimum-size & [maximum-size]]
|
||||
(let [maximum-size (or maximum-size 1.0)]
|
||||
(fn [y]
|
||||
(fn [[_ y]]
|
||||
(if (< y baseline) maximum-size
|
||||
(let [percent-complete (- 1.0 (/ (- y baseline) (- +screen-height+ baseline)))
|
||||
range (+ (* percent-complete (- maximum-size minimum-size)) minimum-size)]
|
||||
range)))))
|
||||
|
||||
(defn scaler-fn-from-image [image minimum-size maximum-size]
|
||||
(let [image (pixmap image)
|
||||
maximum-size (or maximum-size 1.0)]
|
||||
(fn [[x y]]
|
||||
(let [percent-complete (-> image
|
||||
(pixmap! :get-pixel x (- 240 y))
|
||||
color
|
||||
(.r))]
|
||||
(+ (* percent-complete (- maximum-size minimum-size)) minimum-size)))))
|
||||
|
||||
(defn dist [x1 y1 x2 y2]
|
||||
(let [dx (- x1 x2)
|
||||
dy (- y1 y2)]
|
||||
|
||||
Reference in New Issue
Block a user