From 76c0903ea857ff9bf31fe3cf75a3a41d3ee2ec06 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Tue, 28 Jan 2025 22:18:36 +0500 Subject: feat: debug widget --- .../kz/ilotterytea/frogartha/FrogarthaGame.java | 1 + .../ilotterytea/frogartha/screens/GameScreen.java | 4 +++ .../ilotterytea/frogartha/screens/KickScreen.java | 4 +++ .../ilotterytea/frogartha/screens/MenuScreen.java | 4 +++ .../frogartha/screens/SplashScreen.java | 4 +++ .../kz/ilotterytea/frogartha/ui/DebugWidget.java | 40 ++++++++++++++++++++++ 6 files changed, 57 insertions(+) create mode 100644 core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java diff --git a/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java b/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java index c61fade..1f79cfe 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/FrogarthaGame.java @@ -33,6 +33,7 @@ public class FrogarthaGame extends Game { // preventing space key from triggering scrolling if (Gdx.app.getType() == Application.ApplicationType.WebGL) { Gdx.input.setCatchKey(Input.Keys.SPACE, true); + Gdx.input.setCatchKey(Input.Keys.F3, true); } setScreen(new SplashScreen()); } diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java index 12f54bb..114ee22 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/GameScreen.java @@ -17,6 +17,7 @@ import kz.ilotterytea.frogartha.assets.Assets; import kz.ilotterytea.frogartha.domain.PlayerData; import kz.ilotterytea.frogartha.entities.LocalPlayerEntity; import kz.ilotterytea.frogartha.entities.PlayerEntity; +import kz.ilotterytea.frogartha.ui.DebugWidget; import kz.ilotterytea.frogartha.ui.game.ChatTable; import net.mgsx.gltf.scene3d.attributes.PBRCubemapAttribute; import net.mgsx.gltf.scene3d.attributes.PBRTextureAttribute; @@ -187,6 +188,9 @@ public class GameScreen implements Screen { stage = new Stage(new ScreenViewport()); skin = game.getAssetManager().get(Assets.Skins.SKIN_UI); + DebugWidget debugWidget = new DebugWidget(skin); + stage.addActor(debugWidget); + Table mainTable = new Table(); mainTable.setFillParent(true); stage.addActor(mainTable); diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java index dd98361..5f5f3f1 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/KickScreen.java @@ -15,6 +15,7 @@ import com.badlogic.gdx.utils.viewport.ScreenViewport; import kz.ilotterytea.frogartha.FrogarthaGame; import kz.ilotterytea.frogartha.assets.Assets; import kz.ilotterytea.frogartha.exceptions.PlayerKickException; +import kz.ilotterytea.frogartha.ui.DebugWidget; public class KickScreen implements Screen { private FrogarthaGame game; @@ -74,6 +75,9 @@ public class KickScreen implements Screen { stage = new Stage(new ScreenViewport()); Skin skin = game.getAssetManager().get(Assets.Skins.SKIN_UI); + DebugWidget debugWidget = new DebugWidget(skin); + stage.addActor(debugWidget); + Table mainTable = new Table(); mainTable.setFillParent(true); mainTable.align(Align.center); diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java index 2e30527..7e8f5bb 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java @@ -23,6 +23,7 @@ import kz.ilotterytea.frogartha.assets.Assets; import kz.ilotterytea.frogartha.domain.RoomTopic; import kz.ilotterytea.frogartha.sessions.IdentityClient; import kz.ilotterytea.frogartha.sessions.SessionClient; +import kz.ilotterytea.frogartha.ui.DebugWidget; import kz.ilotterytea.frogartha.ui.menu.RoomTopicWidget; import net.mgsx.gltf.scene3d.scene.SceneManager; import net.mgsx.gltf.scene3d.scene.SceneSkybox; @@ -124,6 +125,9 @@ public class MenuScreen implements Screen { Skin skin = game.getAssetManager().get(Assets.Skins.SKIN_UI); Skin widgetSkin = game.getAssetManager().get(Assets.Skins.SKIN_WIDGET); + DebugWidget debugWidget = new DebugWidget(skin); + stage.addActor(debugWidget); + // Creating main table Table mainTable = new Table(); mainTable.setFillParent(true); diff --git a/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java b/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java index 39771ed..31ce32e 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/SplashScreen.java @@ -15,6 +15,7 @@ import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.viewport.ScreenViewport; import kz.ilotterytea.frogartha.FrogarthaGame; import kz.ilotterytea.frogartha.assets.Assets; +import kz.ilotterytea.frogartha.ui.DebugWidget; public class SplashScreen implements Screen { private FrogarthaGame game; @@ -35,6 +36,9 @@ public class SplashScreen implements Screen { skin = new Skin(Gdx.files.internal(Assets.Skins.SKIN_UI)); texture = new Texture(Gdx.files.internal(Assets.Sprites.SPRITE_ILOTTERYTEA)); + DebugWidget debugWidget = new DebugWidget(skin); + stage.addActor(debugWidget); + float stageWidth = Math.min(700f, stage.getWidth()); table = new Table(); diff --git a/core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java b/core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java new file mode 100644 index 0000000..25d9db1 --- /dev/null +++ b/core/src/main/java/kz/ilotterytea/frogartha/ui/DebugWidget.java @@ -0,0 +1,40 @@ +package kz.ilotterytea.frogartha.ui; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.utils.Align; +import kz.ilotterytea.frogartha.FrogarthaConstants; + +public class DebugWidget extends Table { + private final Label fpsLabel; + + public DebugWidget(Skin skin) { + super(); + setFillParent(true); + align(Align.topLeft); + pad(16f); + setZIndex(100); + + Label infoLabel = new Label(FrogarthaConstants.Game.APP_NAME + " " + FrogarthaConstants.Game.APP_VERSION, skin); + add(infoLabel).growX().row(); + + fpsLabel = new Label("", skin); + add(fpsLabel).growX().row(); + } + + @Override + public void act(float delta) { + super.act(delta); + + boolean isEnabled = Gdx.input.isKeyPressed(Input.Keys.F3); + + if (isEnabled) { + fpsLabel.setText(Gdx.graphics.getFramesPerSecond() + " fps"); + } + + fpsLabel.setVisible(isEnabled); + } +} -- cgit v1.2.3