From 964cdf6fa8dc792e42171b8483b6f9f23371a64a Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Sat, 25 Jul 2015 13:37:01 -0700 Subject: [PATCH] switchable screen size. --- desktop/settings.edn | 2 +- desktop/src-common/advent/screens/scene.clj | 1 + desktop/src-common/advent/screens/title.clj | 23 ++++++++++++++++---- desktop/src/advent/core/desktop_launcher.clj | 6 ++++- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/desktop/settings.edn b/desktop/settings.edn index 08b64432..4d6d5fb2 100644 --- a/desktop/settings.edn +++ b/desktop/settings.edn @@ -1 +1 @@ -{:sound-volume 64.0, :music-volume 55.0} \ No newline at end of file +{:sound-volume 64.0, :music-volume 0.0} \ No newline at end of file diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index 74f17aeb..fbf262fd 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -741,6 +741,7 @@ void main() :on-show (fn [screen entities] + (let [screen (assoc screen :total-time 0)] (let [[cam] (utils/setup-viewport screen 320 240)] (set! (. cam zoom) 0.95) diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 11f0362e..093031fb 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -70,15 +70,18 @@ (utils/setup-viewport screen 1280 960) (utils/load-settings!) (let [font (utils/get-font "ego/font.fnt") - start-playing (assoc (label "Begin quest" (style :label font (color 0.6 1.0 1.0 1.0))) :x 0 :y 280 :height 64 :origin-x 0 :origin-y 0) + start-playing (assoc (label "Begin quest" (style :label font (color 0.6 1.0 1.0 1.0))) :x 0 :y 280 :height 32 :origin-x 0 :origin-y 0) start-playing (center start-playing) - quit (assoc (label "End quest" (style :label font (color 0.6 1.0 1.0 1.0))) :x 0 :y (- 280 (* 32 5)) :height 32 :origin-x 0 :origin-y 0) + fullscreen (assoc (label "Windowed" (style :label font (color 0.6 1.0 1.0 1.0))) :x 0 :y (- 280 (* 32 5)) :height 32 :origin-x 0 :origin-y 0) + fullscreen (center fullscreen) + quit (assoc (label "End quest" (style :label font (color 0.6 1.0 1.0 1.0))) :x 0 :y (- 280 (* 32 6)) :height 32 :origin-x 0 :origin-y 0) quit (center quit) music (utils/make-music "intro.ogg") ui-skin (skin "ui/ui.json") ] (label! start-playing :set-alignment Align/center) (label! quit :set-alignment Align/center) + (label! fullscreen :set-alignment Align/center) {:overlay (assoc (texture "title.png" ) :x 0 :y 0 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0) :fade (assoc (texture "black.png") @@ -99,7 +102,7 @@ :y 650) :clouds (assoc (particle-effect "titleclouds" :reset :start) :x 640 :y 480 ) :toolbox (center (assoc (nine-patch {:region (:object (texture "talk-bg-2.png")) :left 9 :top 9 :right 9 :bottom 9}) - :y 90 :width 500 :height 250)) + :y 58 :width 500 :height 282)) :music-label (-> (label "Music" (style :label font (color 1.0 1.0 1.0 1.0))) (assoc :x 0 :y (- 280 (* 32 1)) :height 32 :origin-x 0 :origin-y 0) @@ -129,6 +132,7 @@ :volume 1.0 :start-playing start-playing :quit quit + :fullscreen fullscreen :tweens {:fade-in (tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 1.0 :finish #(do (utils/play-sound (:music %)) %) :ease tween/ease-in-quadratic)}})) @@ -141,7 +145,7 @@ entities (fly-ego screen entities)] (music! (:music entities) :set-volume (utils/current-music-volume (:volume entities))) - (render! screen [(:overlay entities) (:clouds entities) (:flying-ego entities) (:toolbox entities) (:start-playing entities) (:quit entities) (:music-label entities) (:music-volume-slider entities) (:sound-label entities) (:sound-volume-slider entities) (:fade entities) ]) + (render! screen [(:overlay entities) (:clouds entities) (:flying-ego entities) (:toolbox entities) (:start-playing entities) (:quit entities) (:fullscreen entities) (:music-label entities) (:music-volume-slider entities) (:sound-label entities) (:sound-volume-slider entities) (:fade entities) ]) entities)) :show-screen (fn [entities] @@ -150,6 +154,7 @@ :on-mouse-moved (fn [screen [entities]] (let [[x y] (utils/unproject screen)] (style-label (:start-playing entities) (get-in entities [:font]) [x y]) + (style-label (:fullscreen entities) (get-in entities [:font]) [x y]) (style-label (:quit entities) (get-in entities [:font]) [x y]) (style-slider (:music-volume-slider entities) [x y]) (style-slider (:sound-volume-slider entities) [x y]) @@ -160,6 +165,7 @@ assoc :music-volume (slider! (:music-volume-slider entities) :get-value) :sound-volume (slider! (:sound-volume-slider entities) :get-value)) + (utils/save-settings!) entities) @@ -187,6 +193,15 @@ entities) :ease tween/ease-in-cubic))) + (utils/intersects? (:fullscreen entities) [x y]) + (if (.isFullscreen Gdx/graphics) + (on-gl (.setDisplayMode Gdx/graphics 1280 960 false) + (label! (:fullscreen entities) set-text "Windowed")) + (on-gl (.setDisplayMode Gdx/graphics + (.width (.getDesktopDisplayMode Gdx/graphics)) + (.height (.getDesktopDisplayMode Gdx/graphics)) + true) + (label! (:fullscreen entities) set-text "Fullscreen"))) :else nil)))) diff --git a/desktop/src/advent/core/desktop_launcher.clj b/desktop/src/advent/core/desktop_launcher.clj index 78040ff4..7a2db4ed 100644 --- a/desktop/src/advent/core/desktop_launcher.clj +++ b/desktop/src/advent/core/desktop_launcher.clj @@ -2,7 +2,8 @@ (:require [advent.core :refer :all] [clojure.tools.nrepl.server]) (:import [com.badlogic.gdx.backends.lwjgl LwjglApplication LwjglApplicationConfiguration] - [org.lwjgl.input Keyboard]) + [org.lwjgl.input Keyboard] + [com.badlogic.gdx Gdx]) (:gen-class)) (defmacro start-nrepl-expr [port] @@ -14,6 +15,8 @@ (spit port#))) (println "Started nREPL server on port" port#))) + + (defn -main [& [port]] (when port (start-nrepl-expr (Integer/parseInt port))) @@ -26,4 +29,5 @@ (LwjglApplication. advent "advent" 1280 960)) + (Keyboard/enableRepeatEvents true))