diff --git a/desktop/resources/ego/font.png b/desktop/resources/ego/font.png index 9606c912..b6447273 100644 Binary files a/desktop/resources/ego/font.png and b/desktop/resources/ego/font.png differ diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index ef8fa9a9..2ffa653f 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -953,6 +953,12 @@ void main() :on-resume (fn [screen [entities]] (doseq [[k [start time fn]] (get-in entities [:room :timers])] (add-timer! screen k start time))) + + :on-key-up + (fn [screen entities] + (when (= (key-code :escape) (:key screen)) + (utils/toggle-fullscreen!)) + nil) :on-render (fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]] diff --git a/desktop/src-common/advent/screens/title.clj b/desktop/src-common/advent/screens/title.clj index 254ff842..8b1c0a3a 100644 --- a/desktop/src-common/advent/screens/title.clj +++ b/desktop/src-common/advent/screens/title.clj @@ -160,13 +160,16 @@ (fn [{:keys [^FitViewport viewport] :as screen} [entities]] (.apply viewport) (clear!) - (when-not (:paused? entities) - (let [entities (utils/apply-tweens screen entities (:tweens entities)) - entities (fly-ego screen entities)] - (music! (:music entities) :set-volume (utils/current-music-volume (:volume entities))) - - (render! screen [(:background entities) (:particle-clouds entities) (:cloud-background entities) (:ego-jet entities) (:flying-ego entities) (:logo entities) (:toolbox entities) (:start-playing entities) (:quit entities) (:fullscreen entities) (:music-label entities) (:music-volume-slider entities) (:sound-label entities) (:sound-volume-slider entities) (:copyright entities) (:fade entities) ]) - entities))) + (let [entities (utils/apply-tweens screen entities (:tweens entities)) + entities (fly-ego screen entities) + ] + (label! (:fullscreen entities) :set-text (if (.isFullscreen Gdx/graphics) + "Fullscreen" + "Windowed")) + (music! (:music entities) :set-volume (utils/current-music-volume (:volume entities))) + + (render! screen [(:background entities) (:particle-clouds entities) (:cloud-background entities) (:ego-jet entities) (:flying-ego entities) (:logo entities) (:toolbox entities) (:start-playing entities) (:quit entities) (:fullscreen entities) (:music-label entities) (:music-volume-slider entities) (:sound-label entities) (:sound-volume-slider entities) (:copyright entities) (:fade entities) ]) + entities)) :show-screen (fn [entities] entities) @@ -179,6 +182,12 @@ (style-slider (:music-volume-slider entities) [x y]) (style-slider (:sound-volume-slider entities) [x y]) entities)) + :on-key-up + (fn [screen entities] + (when (= (key-code :escape) (:key screen)) + (utils/toggle-fullscreen!)) + nil) + :on-ui-changed (fn [screen [entities]] (swap! utils/settings @@ -217,31 +226,12 @@ :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 - (doto (.width (.getDesktopDisplayMode Gdx/graphics)) println) - (doto (.height (.getDesktopDisplayMode Gdx/graphics)) println) - true) - (set! (.foregroundFPS (-> (class Gdx/graphics) - (.getDeclaredField (name "config")) - (doto (.setAccessible true)) - (.get Gdx/graphics))) 60 ) - (label! (:fullscreen entities) set-text "Fullscreen"))) + (utils/toggle-fullscreen!) + :else nil)))) :on-resize (fn [{:keys [viewport width height]} [entities]] (.update viewport width height false) - nil) - :on-pause (fn [{:keys [viewport] :as screen} [entities]] - - (assoc entities :paused? true)) - :on-resume (fn [{:keys [viewport] :as screen} [entities]] - (utils/setup-viewport screen 1280 960) - (assoc entities :paused? false)) - - -) + nil)) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index fa146b29..5effb62e 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -12,6 +12,8 @@ [com.badlogic.gdx.graphics.g2d TextureRegion] [com.badlogic.gdx.utils.viewport FitViewport] [com.badlogic.gdx.scenes.scene2d Actor Stage] + [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input + InputMultiplexer InputProcessor Net Preferences Screen] [java.lang Object])) (defn log-coords [screen entities] @@ -316,3 +318,15 @@ (particle-effect! p :update 10.0) (dotimes [_ 160] (particle-effect! p :update 0.2))) + +(defn toggle-fullscreen! [] + (if (.isFullscreen Gdx/graphics) + (on-gl (.setDisplayMode Gdx/graphics 1280 960 false)) + (on-gl (.setDisplayMode Gdx/graphics + (doto (.width (.getDesktopDisplayMode Gdx/graphics)) println) + (doto (.height (.getDesktopDisplayMode Gdx/graphics)) println) + true) + (set! (.foregroundFPS (-> (class Gdx/graphics) + (.getDeclaredField (name "config")) + (doto (.setAccessible true)) + (.get Gdx/graphics))) 60)))) diff --git a/desktop/src/advent/core/desktop_launcher.clj b/desktop/src/advent/core/desktop_launcher.clj index 93f15b20..3723e783 100644 --- a/desktop/src/advent/core/desktop_launcher.clj +++ b/desktop/src/advent/core/desktop_launcher.clj @@ -23,7 +23,7 @@ (when port (start-nrepl-expr (Integer/parseInt port))) (catch Exception e)) (let [cfg (LwjglApplicationConfiguration.)] - (if true + (if false (do (set! (.width cfg) (doto (.width (LwjglApplicationConfiguration/getDesktopDisplayMode)) println)) (set! (.height cfg) (doto (.height (LwjglApplicationConfiguration/getDesktopDisplayMode)) println))