Merge branch 'master' of https://github.com/oakes/play-clj
This commit is contained in:
@@ -162,16 +162,15 @@ of the camera will be set."
|
|||||||
(. camera position)))
|
(. camera position)))
|
||||||
|
|
||||||
(defn position!
|
(defn position!
|
||||||
"Sets the position of `object`. If `object` is a screen, the position of the
|
"Sets the position of the camera in `screen`."
|
||||||
camera will be set."
|
([screen vec-3]
|
||||||
([object vec-3]
|
(position! screen (x vec-3) (y vec-3) (z vec-3)))
|
||||||
(position! object (x vec-3) (y vec-3) (z vec-3)))
|
([screen x-val y-val]
|
||||||
([object x-val y-val]
|
(position! screen x-val y-val nil))
|
||||||
(position! object x-val y-val nil))
|
([screen x-val y-val z-val]
|
||||||
([object x-val y-val z-val]
|
(some->> x-val (x! screen))
|
||||||
(some->> x-val (x! object))
|
(some->> y-val (y! screen))
|
||||||
(some->> y-val (y! object))
|
(some->> z-val (z! screen))))
|
||||||
(some->> z-val (z! object))))
|
|
||||||
|
|
||||||
(defn direction
|
(defn direction
|
||||||
"Returns the direction of the camera in `screen`."
|
"Returns the direction of the camera in `screen`."
|
||||||
@@ -181,10 +180,17 @@ camera will be set."
|
|||||||
|
|
||||||
(defn direction!
|
(defn direction!
|
||||||
"Sets the direction of the camera in `screen`."
|
"Sets the direction of the camera in `screen`."
|
||||||
[screen x-val y-val z-val]
|
([screen x-val y-val z-val]
|
||||||
(let [^Camera camera (u/get-obj screen :camera)]
|
(direction! screen x-val y-val z-val true))
|
||||||
(.lookAt camera x-val y-val z-val)
|
([screen x-val y-val z-val look-at?]
|
||||||
(.update camera)))
|
(let [^Camera camera (u/get-obj screen :camera)]
|
||||||
|
(if look-at?
|
||||||
|
(.lookAt camera x-val y-val z-val)
|
||||||
|
(let [^Vector3 dir-vec (direction screen)]
|
||||||
|
(some->> x-val (x! dir-vec))
|
||||||
|
(some->> y-val (y! dir-vec))
|
||||||
|
(some->> z-val (z! dir-vec))))
|
||||||
|
(.update camera))))
|
||||||
|
|
||||||
(defn up [screen]
|
(defn up [screen]
|
||||||
"Returns the up vector of the camera in `screen`."
|
"Returns the up vector of the camera in `screen`."
|
||||||
|
|||||||
@@ -529,6 +529,7 @@ specify which layers to render with or without.
|
|||||||
(set layer-names))
|
(set layer-names))
|
||||||
(u/throw-key-not-found k))
|
(u/throw-key-not-found k))
|
||||||
(map #(.indexOf ^java.util.List all-layer-names %))
|
(map #(.indexOf ^java.util.List all-layer-names %))
|
||||||
|
(sort)
|
||||||
int-array
|
int-array
|
||||||
(.render renderer)))
|
(.render renderer)))
|
||||||
(.render renderer))
|
(.render renderer))
|
||||||
|
|||||||
@@ -58,22 +58,23 @@
|
|||||||
(defrecord ActorEntity [object] Entity
|
(defrecord ActorEntity [object] Entity
|
||||||
(draw! [{:keys [^Actor object x y width height
|
(draw! [{:keys [^Actor object x y width height
|
||||||
scale-x scale-y angle origin-x origin-y]} _ batch]
|
scale-x scale-y angle origin-x origin-y]} _ batch]
|
||||||
(some->> x (.setX object))
|
(when (.getStage object)
|
||||||
(some->> y (.setY object))
|
(some->> x (.setX object))
|
||||||
(some->> width (.setWidth object))
|
(some->> y (.setY object))
|
||||||
(some->> height (.setHeight object))
|
(some->> width (.setWidth object))
|
||||||
(when (or scale-x scale-y angle)
|
(some->> height (.setHeight object))
|
||||||
(let [scale-x (float (or scale-x 1))
|
(when (or scale-x scale-y angle)
|
||||||
scale-y (float (or scale-y 1))
|
(let [scale-x (float (or scale-x 1))
|
||||||
origin-x (float (or origin-x (/ (.getWidth object) 2)))
|
scale-y (float (or scale-y 1))
|
||||||
origin-y (float (or origin-y (/ (.getHeight object) 2)))
|
origin-x (float (or origin-x (/ (.getWidth object) 2)))
|
||||||
angle (float (or angle 0))]
|
origin-y (float (or origin-y (/ (.getHeight object) 2)))
|
||||||
(.setScaleX object scale-x)
|
angle (float (or angle 0))]
|
||||||
(.setScaleY object scale-y)
|
(.setScaleX object scale-x)
|
||||||
(.setOriginX object origin-x)
|
(.setScaleY object scale-y)
|
||||||
(.setOriginY object origin-y)
|
(.setOriginX object origin-x)
|
||||||
(.setRotation object angle)))
|
(.setOriginY object origin-y)
|
||||||
(.draw object ^Batch batch 1)))
|
(.setRotation object angle)))
|
||||||
|
(.draw object ^Batch batch 1))))
|
||||||
|
|
||||||
(defrecord ModelEntity [object] Entity
|
(defrecord ModelEntity [object] Entity
|
||||||
(draw! [{:keys [^ModelInstance object x y z]}
|
(draw! [{:keys [^ModelInstance object x y z]}
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
|
|
||||||
(defn play-clj
|
(defn play-clj
|
||||||
[name & [package-name]]
|
[name & [package-name]]
|
||||||
(when (contains? #{"game" "main-screen"} name)
|
|
||||||
(main/abort "Choose a more creative name than that, silly!"))
|
|
||||||
(let [render (t/renderer "play-clj")
|
(let [render (t/renderer "play-clj")
|
||||||
lein-droid-render (droid-new/renderer "templates")
|
lein-droid-render (droid-new/renderer "templates")
|
||||||
desktop-class-name "desktop-launcher"
|
desktop-class-name "desktop-launcher"
|
||||||
@@ -21,6 +19,7 @@
|
|||||||
android-ns (str package-name "." android-class-name)
|
android-ns (str package-name "." android-class-name)
|
||||||
ios-ns (str package-name "." ios-class-name)
|
ios-ns (str package-name "." ios-class-name)
|
||||||
data {:app-name name
|
data {:app-name name
|
||||||
|
:game-name (str name "-game")
|
||||||
:name (t/project-name name)
|
:name (t/project-name name)
|
||||||
:package package-name
|
:package package-name
|
||||||
:package-sanitized package-name
|
:package-sanitized package-name
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ public class {{android-class-name}} extends AndroidApplication {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
RT.var("clojure.core", "require").invoke(Symbol.intern("{{namespace}}"));
|
RT.var("clojure.core", "require").invoke(Symbol.intern("{{namespace}}"));
|
||||||
try {
|
try {
|
||||||
Game game = (Game) RT.var("{{namespace}}", "{{app-name}}").deref();
|
Game game = (Game) RT.var("{{namespace}}", "{{game-name}}").deref();
|
||||||
initialize(game);
|
initialize(game);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class {{ios-class-name}} extends IOSApplication.Delegate {
|
|||||||
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
|
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
|
||||||
RT.var("clojure.core", "require").invoke(Symbol.intern("{{namespace}}"));
|
RT.var("clojure.core", "require").invoke(Symbol.intern("{{namespace}}"));
|
||||||
try {
|
try {
|
||||||
Game game = (Game) RT.var("{{namespace}}", "{{app-name}}").deref();
|
Game game = (Game) RT.var("{{namespace}}", "{{game-name}}").deref();
|
||||||
return new IOSApplication(game, config);
|
return new IOSApplication(game, config);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
(clear!)
|
(clear!)
|
||||||
(render! screen entities)))
|
(render! screen entities)))
|
||||||
|
|
||||||
(defgame {{app-name}}
|
(defgame {{game-name}}
|
||||||
:on-create
|
:on-create
|
||||||
(fn [this]
|
(fn [this]
|
||||||
(set-screen! this main-screen)))
|
(set-screen! this main-screen)))
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
|
|
||||||
(defn -main
|
(defn -main
|
||||||
[]
|
[]
|
||||||
(LwjglApplication. {{app-name}} "{{app-name}}" 800 600)
|
(LwjglApplication. {{game-name}} "{{app-name}}" 800 600)
|
||||||
(Keyboard/enableRepeatEvents true))
|
(Keyboard/enableRepeatEvents true))
|
||||||
|
|||||||
Reference in New Issue
Block a user