correct cursor logic, scared animation update, choosable volume.

This commit is contained in:
2015-03-06 07:13:18 -08:00
parent b057593b86
commit 183b369441
18 changed files with 129 additions and 93 deletions

View File

@@ -129,13 +129,7 @@
(:cursor %))
(get-in entities [:room :interactions]))))
(defn update-override [entities]
(if (get-in entities [:state :active?])
(let [last-pos (get-in entities [:cursor :last-pos])]
(if-let [mouse-override (find-override entities last-pos)]
(assoc-in entities [:cursor :override] (:cursor mouse-override))
(assoc-in entities [:cursor :override] nil)))
entities))
(defn remove-interaction [entities id]
(update-in entities [:room :interactions] (fn [i] (remove #(= id (:id %)) i))))
@@ -180,12 +174,30 @@
(.apply viewport)
[cam viewport stage]))
(defn unproject [screen]
(let [pj (.unproject (:viewport screen) (vector-2 (:input-x screen) (:input-y screen)))
x (.x pj)
y (.y pj)]
[x y]))
(defn unproject
([screen]
(unproject screen [(:input-x screen) (:input-y screen)]) )
([screen [x y]]
(let [pj (.unproject ^FitViewport (:viewport screen) (vector-2 x y))
x (.x pj)
y (.y pj)]
[x y])))
(defn project
([screen [x y]]
(let [pj (.project ^FitViewport (:viewport screen) (vector-2 x y))
x (.x pj)
y (.y pj)]
[x y])))
(defn contains-point? [x1 y1 width height x y]
(and (< x1 x (+ x1 width))
(< y1 y (+ y1 height))))
(defn update-override [screen entities]
(let [last-pos (unproject screen (get-in entities [:cursor :last-pos]))]
(if (get-in entities [:state :active?])
(if-let [mouse-override (find-override entities last-pos)]
(assoc-in entities [:cursor :override] (:cursor mouse-override))
(assoc-in entities [:cursor :override] nil))
entities)))