new screen stuff.

This commit is contained in:
2014-10-09 19:23:46 -07:00
parent 0d9b49a688
commit 396ff1320c
4 changed files with 21 additions and 3 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)]