things are faster, hopefully.
This commit is contained in:
@@ -21,6 +21,10 @@
|
|||||||
:javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
|
:javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
|
||||||
:omit-source true
|
:omit-source true
|
||||||
:aliases {"pack" ["run" "-m" "com.badlogic.gdx.tools.texturepacker.TexturePacker" "asset-work/" "resources/packed/"]}
|
:aliases {"pack" ["run" "-m" "com.badlogic.gdx.tools.texturepacker.TexturePacker" "asset-work/" "resources/packed/"]}
|
||||||
|
:profiles {
|
||||||
|
:dev {
|
||||||
|
:warn-on-reflection true}
|
||||||
|
}
|
||||||
:aot [advent.core.desktop-launcher]
|
:aot [advent.core.desktop-launcher]
|
||||||
:main advent.core.desktop-launcher)
|
:main advent.core.desktop-launcher)
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
(defgame advent
|
(defgame advent
|
||||||
:on-create
|
:on-create
|
||||||
(fn [this]
|
(fn [this]
|
||||||
(on-gl (set-screen! this title/title-screen))))
|
(set-screen! this title/title-screen)))
|
||||||
|
|
||||||
|
|
||||||
(defn reload []
|
(defn reload []
|
||||||
|
|||||||
@@ -689,11 +689,9 @@ void main()
|
|||||||
:talk-color (color 0.6 1.0 1.0 1.0)
|
:talk-color (color 0.6 1.0 1.0 1.0)
|
||||||
:stand-override nil
|
:stand-override nil
|
||||||
:mouse-in? (fn [entities x y]
|
:mouse-in? (fn [entities x y]
|
||||||
(let [{entity-x :x entity-y :y region :object scale :scale-x} (get-in entities [:room :entities :ego])
|
(let [{entity-x :x entity-y :y ^TextureRegion region :object scale :scale-x} (get-in entities [:room :entities :ego])
|
||||||
half-width (/ (* (.getRegionWidth region) (or scale 1.0)) 2)
|
half-width (/ (* (.getRegionWidth region) (or scale 1.0)) 2)
|
||||||
height (* (.getRegionHeight region) (or scale 1.0))]
|
height (* (.getRegionHeight region) (or scale 1.0))]
|
||||||
#_(clojure.pprint/pprint [["point" x y]
|
|
||||||
["entity " (- entity-x half-width) entity-y (+ entity-x half-width) (+ entity-y height)]])
|
|
||||||
|
|
||||||
((zone/box (- entity-x half-width) entity-y (+ entity-x half-width) (+ entity-y height)) x y)))
|
((zone/box (- entity-x half-width) entity-y (+ entity-x half-width) (+ entity-y height)) x y)))
|
||||||
:get-script get-ego-script
|
:get-script get-ego-script
|
||||||
@@ -808,8 +806,8 @@ void main()
|
|||||||
(defn animate [entity screen]
|
(defn animate [entity screen]
|
||||||
(merge entity (animation->texture (update-in screen [:total-time] #(- % (:anim-start entity)))
|
(merge entity (animation->texture (update-in screen [:total-time] #(- % (:anim-start entity)))
|
||||||
(:anim entity))
|
(:anim entity))
|
||||||
{:current-frame-index (texture! (:anim entity) :get-key-frame-index (get-animation-point (:anim entity) (- (:total-time screen) (:anim-start entity))))
|
{:current-frame-index (animation! ^Animation (:anim entity) :get-key-frame-index (get-animation-point (:anim entity) (- (:total-time screen) (:anim-start entity))))
|
||||||
:previous-frame-index (texture! (:anim entity) :get-key-frame-index (get-animation-point (:anim entity) (- (:total-time screen) (:anim-start entity) (or (:delta-time screen) 0))))
|
:previous-frame-index (animation! ^Animation (:anim entity) :get-key-frame-index (get-animation-point (:anim entity) (- (:total-time screen) (:anim-start entity) (or (:delta-time screen) 0))))
|
||||||
:origin-x (or (get-in entity [:anim-origins (:anim entity) 0])
|
:origin-x (or (get-in entity [:anim-origins (:anim entity) 0])
|
||||||
(:base-origin-x entity)
|
(:base-origin-x entity)
|
||||||
(:origin-x entity))
|
(:origin-x entity))
|
||||||
@@ -954,9 +952,9 @@ void main()
|
|||||||
(fn [screen entities]
|
(fn [screen entities]
|
||||||
|
|
||||||
(let [screen (assoc screen :total-time 0)]
|
(let [screen (assoc screen :total-time 0)]
|
||||||
(let [[cam] (utils/setup-viewport screen 320 240)]
|
(let [[^OrthographicCamera cam] (utils/setup-viewport screen 320 240)]
|
||||||
(set! (. cam zoom) 0.95)
|
(set! (. cam zoom) 0.95)
|
||||||
(let [shader (ShaderProgram. v-shader pix-shader)
|
(let [shader (ShaderProgram. ^String v-shader ^String pix-shader)
|
||||||
_ (update! screen :shader shader)
|
_ (update! screen :shader shader)
|
||||||
rooms {:inside-house (rooms.inside-house/make screen)
|
rooms {:inside-house (rooms.inside-house/make screen)
|
||||||
:inside-stash (rooms.inside-stash/make screen)
|
:inside-stash (rooms.inside-stash/make screen)
|
||||||
@@ -1052,7 +1050,7 @@ void main()
|
|||||||
nil)
|
nil)
|
||||||
|
|
||||||
:on-render
|
:on-render
|
||||||
(fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]]
|
(fn [{:keys [^OrthographicCamera camera ^FitViewport viewport] :as screen} [entities]]
|
||||||
(.apply viewport)
|
(.apply viewport)
|
||||||
(if (get-in entities [:closing? :value])
|
(if (get-in entities [:closing? :value])
|
||||||
|
|
||||||
@@ -1132,7 +1130,7 @@ void main()
|
|||||||
|
|
||||||
entities))))
|
entities))))
|
||||||
|
|
||||||
:on-resize (fn [{:keys [viewport width height]} [entities]]
|
:on-resize (fn [{:keys [^FitViewport viewport width height]} [entities]]
|
||||||
(.update viewport width height))
|
(.update viewport width height))
|
||||||
|
|
||||||
:on-hide (fn [screen [entities]]
|
:on-hide (fn [screen [entities]]
|
||||||
@@ -1148,7 +1146,7 @@ void main()
|
|||||||
mouse-moved
|
mouse-moved
|
||||||
|
|
||||||
:on-touch-down
|
:on-touch-down
|
||||||
(fn [{:keys [input-x input-y viewport] :as screen} [entities]]
|
(fn [{:keys [input-x input-y ^FitViewport viewport] :as screen} [entities]]
|
||||||
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
|
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
|
||||||
(.getScreenWidth viewport) (.getScreenHeight viewport)
|
(.getScreenWidth viewport) (.getScreenHeight viewport)
|
||||||
input-x input-y)
|
input-x input-y)
|
||||||
@@ -1162,7 +1160,7 @@ void main()
|
|||||||
interacting-entity (get-interacting-entity entities x y)]
|
interacting-entity (get-interacting-entity entities x y)]
|
||||||
(assoc-in entities [:cursor :down-target] (or (:id interacting-entity ) (:id interaction) nil))))))
|
(assoc-in entities [:cursor :down-target] (or (:id interacting-entity ) (:id interaction) nil))))))
|
||||||
|
|
||||||
:on-touch-up (fn [{:keys [input-x input-y viewport] :as screen} [entities]]
|
:on-touch-up (fn [{:keys [input-x input-y ^FitViewport viewport] :as screen} [entities]]
|
||||||
|
|
||||||
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
|
(when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport)
|
||||||
(.getScreenWidth viewport) (.getScreenHeight viewport)
|
(.getScreenWidth viewport) (.getScreenHeight viewport)
|
||||||
@@ -1240,8 +1238,8 @@ void main()
|
|||||||
entities)
|
entities)
|
||||||
|
|
||||||
:on-resize
|
:on-resize
|
||||||
(fn [screen entities]
|
(fn [{:keys [^FitViewport viewport width height]} entities]
|
||||||
(.update (:viewport screen) (:width screen) (:height screen) true))
|
(.update viewport width height true))
|
||||||
|
|
||||||
)
|
)
|
||||||
(defscreen hud
|
(defscreen hud
|
||||||
@@ -1261,7 +1259,7 @@ void main()
|
|||||||
:fps (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.1)}))
|
:fps (assoc (label "" (color :white) ) :x 5 :baseline 0 :opacity 0.1)}))
|
||||||
|
|
||||||
:on-render
|
:on-render
|
||||||
(fn [{:keys [viewport] :as screen} [entities]]
|
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
|
||||||
(.apply viewport)
|
(.apply viewport)
|
||||||
(let [entities (utils/apply-tweens screen entities (:tweens entities))]
|
(let [entities (utils/apply-tweens screen entities (:tweens entities))]
|
||||||
#_(label! (:fps entities) :set-text (str (game :fps)))
|
#_(label! (:fps entities) :set-text (str (game :fps)))
|
||||||
@@ -1269,8 +1267,8 @@ void main()
|
|||||||
entities))
|
entities))
|
||||||
|
|
||||||
:on-resize
|
:on-resize
|
||||||
(fn [screen entities]
|
(fn [{:keys [^FitViewport viewport width height]} entities]
|
||||||
(.update (:viewport screen) (:width screen) (:height screen) true))
|
(.update viewport width height true))
|
||||||
|
|
||||||
:on-mouse-moved
|
:on-mouse-moved
|
||||||
(fn [screen [entities]]
|
(fn [screen [entities]]
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
|
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
|
||||||
InputMultiplexer InputProcessor Net Preferences Screen]))
|
InputMultiplexer InputProcessor Net Preferences Screen]))
|
||||||
|
|
||||||
|
|
||||||
(defn get-color [e mouse-pos]
|
(defn get-color [e mouse-pos]
|
||||||
(if (utils/intersects? e mouse-pos)
|
(if (utils/intersects? e mouse-pos)
|
||||||
(color :yellow)
|
(color :yellow)
|
||||||
|
|||||||
@@ -9,9 +9,10 @@
|
|||||||
[clojure.edn :as edn]
|
[clojure.edn :as edn]
|
||||||
[clojure.string :as str])
|
[clojure.string :as str])
|
||||||
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Blending Pixmap$Filter Texture Texture$TextureFilter]
|
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Blending Pixmap$Filter Texture Texture$TextureFilter]
|
||||||
[com.badlogic.gdx.graphics.g2d TextureRegion]
|
[com.badlogic.gdx.graphics.g2d TextureRegion Animation]
|
||||||
[com.badlogic.gdx.utils.viewport FitViewport]
|
[com.badlogic.gdx.utils.viewport FitViewport]
|
||||||
[com.badlogic.gdx.scenes.scene2d Actor Stage]
|
[com.badlogic.gdx.scenes.scene2d Actor Stage]
|
||||||
|
[com.badlogic.gdx.math CatmullRomSpline]
|
||||||
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
|
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
|
||||||
InputMultiplexer InputProcessor Net Preferences Screen]
|
InputMultiplexer InputProcessor Net Preferences Screen]
|
||||||
[java.lang Object]))
|
[java.lang Object]))
|
||||||
@@ -79,7 +80,7 @@
|
|||||||
(let [font (bitmap-font filename)
|
(let [font (bitmap-font filename)
|
||||||
tr (bitmap-font! font :get-region)
|
tr (bitmap-font! font :get-region)
|
||||||
tx (.getTexture tr)]
|
tx (.getTexture tr)]
|
||||||
(texture! tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
|
(call! ^Texture tx :set-filter Texture$TextureFilter/Linear Texture$TextureFilter/Linear)
|
||||||
font))
|
font))
|
||||||
|
|
||||||
(def +screen-width+ 320)
|
(def +screen-width+ 320)
|
||||||
@@ -126,12 +127,12 @@
|
|||||||
(Math/sqrt (+ (* dx dx) (* dy dy)))))
|
(Math/sqrt (+ (* dx dx) (* dy dy)))))
|
||||||
|
|
||||||
|
|
||||||
(defn flip [anim]
|
(defn flip [^Animation anim]
|
||||||
(animation (animation! anim :get-frame-duration)
|
(animation (animation! anim :get-frame-duration)
|
||||||
(for [src-frame (animation! anim :get-key-frames)
|
(for [src-frame (animation! anim :get-key-frames)
|
||||||
:let [frame (texture (texture! src-frame :get-texture))]]
|
:let [frame (texture (texture! src-frame :get-texture))]]
|
||||||
(do
|
(do
|
||||||
(texture! frame :set-region src-frame)
|
(texture! frame :set-region ^TextureRegion src-frame)
|
||||||
(texture! frame :flip true false)
|
(texture! frame :flip true false)
|
||||||
frame))))
|
frame))))
|
||||||
|
|
||||||
@@ -161,7 +162,7 @@
|
|||||||
(let [speed 0.05
|
(let [speed 0.05
|
||||||
pos-f (- (* (:total-time screen) speed) (int (* (:total-time screen) speed)))
|
pos-f (- (* (:total-time screen) speed) (int (* (:total-time screen) speed)))
|
||||||
v (vector-2 0 0)
|
v (vector-2 0 0)
|
||||||
a (catmull-rom-spline! (:path entity) :value-at v pos-f)]
|
a (catmull-rom-spline! ^CatmullRomSpline (:path entity) :value-at v pos-f)]
|
||||||
(assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))))))
|
(assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))))))
|
||||||
|
|
||||||
(defn path-point [speed screen entities entity]
|
(defn path-point [speed screen entities entity]
|
||||||
@@ -172,7 +173,7 @@
|
|||||||
(if (:path entity)
|
(if (:path entity)
|
||||||
(let [pos-f (- (path-point speed screen entities entity) (int (* (- (:total-time screen) (:path-start-time entity 0.0)) speed)))
|
(let [pos-f (- (path-point speed screen entities entity) (int (* (- (:total-time screen) (:path-start-time entity 0.0)) speed)))
|
||||||
v (vector-2 0 0)
|
v (vector-2 0 0)
|
||||||
a (catmull-rom-spline! (:path entity) :value-at v pos-f)]
|
a (catmull-rom-spline! ^CatmullRomSpline (:path entity) :value-at v pos-f)]
|
||||||
(assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))
|
(assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))
|
||||||
entity))
|
entity))
|
||||||
|
|
||||||
@@ -217,8 +218,8 @@
|
|||||||
|
|
||||||
(defn intersects? [e [x y]]
|
(defn intersects? [e [x y]]
|
||||||
(and (:object e)
|
(and (:object e)
|
||||||
(< (:x e) x (+ (:x e) (or (:width e) (.getWidth (:object e)))))
|
(< (:x e) x (+ (:x e) (or (:width e) (.getWidth ^Actor (:object e)))))
|
||||||
(< (:y e) y (+ (:y e) (or (:height e) (.getHeight (:object e)))))))
|
(< (:y e) y (+ (:y e) (or (:height e) (.getHeight ^Actor (:object e)))))))
|
||||||
|
|
||||||
(defn get-current-music [entities]
|
(defn get-current-music [entities]
|
||||||
(let [time (get-in entities [:state :time])
|
(let [time (get-in entities [:state :time])
|
||||||
@@ -263,7 +264,7 @@
|
|||||||
(and is-script-running
|
(and is-script-running
|
||||||
(= :none (get-in entities [:actions :last-skip-type])))))
|
(= :none (get-in entities [:actions :last-skip-type])))))
|
||||||
|
|
||||||
(defn update-override [{:keys [viewport] :as screen} entities]
|
(defn update-override [{:keys [^FitViewport viewport] :as screen} entities]
|
||||||
(let [raw-pos (get-in entities [:cursor :last-pos])
|
(let [raw-pos (get-in entities [:cursor :last-pos])
|
||||||
last-pos (unproject screen raw-pos)
|
last-pos (unproject screen raw-pos)
|
||||||
mouse-override (find-override entities last-pos)
|
mouse-override (find-override entities last-pos)
|
||||||
|
|||||||
Reference in New Issue
Block a user