easily swappable fullscreen.

This commit is contained in:
Bryce Covert
2015-09-04 16:31:45 -07:00
parent a63a5352c1
commit fc258628c8
5 changed files with 40 additions and 30 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -953,6 +953,12 @@ void main()
:on-resume (fn [screen [entities]] :on-resume (fn [screen [entities]]
(doseq [[k [start time fn]] (get-in entities [:room :timers])] (doseq [[k [start time fn]] (get-in entities [:room :timers])]
(add-timer! screen k start time))) (add-timer! screen k start time)))
:on-key-up
(fn [screen entities]
(when (= (key-code :escape) (:key screen))
(utils/toggle-fullscreen!))
nil)
:on-render :on-render
(fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]] (fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]]

View File

@@ -160,13 +160,16 @@
(fn [{:keys [^FitViewport viewport] :as screen} [entities]] (fn [{:keys [^FitViewport viewport] :as screen} [entities]]
(.apply viewport) (.apply viewport)
(clear!) (clear!)
(when-not (:paused? entities) (let [entities (utils/apply-tweens screen entities (:tweens entities))
(let [entities (utils/apply-tweens screen entities (:tweens entities)) entities (fly-ego screen entities)
entities (fly-ego screen entities)] ]
(music! (:music entities) :set-volume (utils/current-music-volume (:volume entities))) (label! (:fullscreen entities) :set-text (if (.isFullscreen Gdx/graphics)
"Fullscreen"
(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) ]) "Windowed"))
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))
:show-screen (fn [entities] :show-screen (fn [entities]
entities) entities)
@@ -179,6 +182,12 @@
(style-slider (:music-volume-slider entities) [x y]) (style-slider (:music-volume-slider entities) [x y])
(style-slider (:sound-volume-slider entities) [x y]) (style-slider (:sound-volume-slider entities) [x y])
entities)) entities))
:on-key-up
(fn [screen entities]
(when (= (key-code :escape) (:key screen))
(utils/toggle-fullscreen!))
nil)
:on-ui-changed :on-ui-changed
(fn [screen [entities]] (fn [screen [entities]]
(swap! utils/settings (swap! utils/settings
@@ -217,31 +226,12 @@
:ease tween/ease-in-cubic)))) :ease tween/ease-in-cubic))))
(utils/intersects? (:fullscreen entities) [x y]) (utils/intersects? (:fullscreen entities) [x y])
(if (.isFullscreen Gdx/graphics) (utils/toggle-fullscreen!)
(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")))
:else :else
nil)))) nil))))
:on-resize (fn [{:keys [viewport width height]} [entities]] :on-resize (fn [{:keys [viewport width height]} [entities]]
(.update viewport width height false) (.update viewport width height false)
nil) 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))
)

View File

@@ -12,6 +12,8 @@
[com.badlogic.gdx.graphics.g2d TextureRegion] [com.badlogic.gdx.graphics.g2d TextureRegion]
[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 Application Audio Files Game Gdx Graphics Input
InputMultiplexer InputProcessor Net Preferences Screen]
[java.lang Object])) [java.lang Object]))
(defn log-coords [screen entities] (defn log-coords [screen entities]
@@ -316,3 +318,15 @@
(particle-effect! p :update 10.0) (particle-effect! p :update 10.0)
(dotimes [_ 160] (dotimes [_ 160]
(particle-effect! p :update 0.2))) (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))))

View File

@@ -23,7 +23,7 @@
(when port (start-nrepl-expr (Integer/parseInt port))) (when port (start-nrepl-expr (Integer/parseInt port)))
(catch Exception e)) (catch Exception e))
(let [cfg (LwjglApplicationConfiguration.)] (let [cfg (LwjglApplicationConfiguration.)]
(if true (if false
(do (do
(set! (.width cfg) (doto (.width (LwjglApplicationConfiguration/getDesktopDisplayMode)) println)) (set! (.width cfg) (doto (.width (LwjglApplicationConfiguration/getDesktopDisplayMode)) println))
(set! (.height cfg) (doto (.height (LwjglApplicationConfiguration/getDesktopDisplayMode)) println)) (set! (.height cfg) (doto (.height (LwjglApplicationConfiguration/getDesktopDisplayMode)) println))