diff options
| author | ilotterytea <iltsu@alright.party> | 2025-01-27 02:44:38 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-01-27 02:44:38 +0500 |
| commit | de9fc039dcdd7938a3accac8166e3c03836ec7f8 (patch) | |
| tree | 4bc70c570e82c2d2aa20aca2282a65d140a8e358 | |
| parent | b3e4b13a4dea6a0d076384a7587850fa621c8d3c (diff) | |
feat: skybox in menu
| -rw-r--r-- | assets/skyboxes/menu/negx.png | bin | 0 -> 574339 bytes | |||
| -rw-r--r-- | assets/skyboxes/menu/negy.png | bin | 0 -> 674104 bytes | |||
| -rw-r--r-- | assets/skyboxes/menu/negz.png | bin | 0 -> 601526 bytes | |||
| -rw-r--r-- | assets/skyboxes/menu/posx.png | bin | 0 -> 609417 bytes | |||
| -rw-r--r-- | assets/skyboxes/menu/posy.png | bin | 0 -> 283857 bytes | |||
| -rw-r--r-- | assets/skyboxes/menu/posz.png | bin | 0 -> 624101 bytes | |||
| -rw-r--r-- | core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java | 42 |
7 files changed, 42 insertions, 0 deletions
diff --git a/assets/skyboxes/menu/negx.png b/assets/skyboxes/menu/negx.png Binary files differnew file mode 100644 index 0000000..1a137fe --- /dev/null +++ b/assets/skyboxes/menu/negx.png diff --git a/assets/skyboxes/menu/negy.png b/assets/skyboxes/menu/negy.png Binary files differnew file mode 100644 index 0000000..8febd50 --- /dev/null +++ b/assets/skyboxes/menu/negy.png diff --git a/assets/skyboxes/menu/negz.png b/assets/skyboxes/menu/negz.png Binary files differnew file mode 100644 index 0000000..b2a25bf --- /dev/null +++ b/assets/skyboxes/menu/negz.png diff --git a/assets/skyboxes/menu/posx.png b/assets/skyboxes/menu/posx.png Binary files differnew file mode 100644 index 0000000..3d1cfa8 --- /dev/null +++ b/assets/skyboxes/menu/posx.png diff --git a/assets/skyboxes/menu/posy.png b/assets/skyboxes/menu/posy.png Binary files differnew file mode 100644 index 0000000..8bd2fdd --- /dev/null +++ b/assets/skyboxes/menu/posy.png diff --git a/assets/skyboxes/menu/posz.png b/assets/skyboxes/menu/posz.png Binary files differnew file mode 100644 index 0000000..718ccf6 --- /dev/null +++ b/assets/skyboxes/menu/posz.png 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 c492ff6..2e30527 100644 --- a/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java +++ b/core/src/main/java/kz/ilotterytea/frogartha/screens/MenuScreen.java @@ -2,7 +2,10 @@ package kz.ilotterytea.frogartha.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; +import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver; +import com.badlogic.gdx.graphics.Cubemap; import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.PerspectiveCamera; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.math.Interpolation; import com.badlogic.gdx.scenes.scene2d.Actor; @@ -21,12 +24,19 @@ import kz.ilotterytea.frogartha.domain.RoomTopic; import kz.ilotterytea.frogartha.sessions.IdentityClient; import kz.ilotterytea.frogartha.sessions.SessionClient; import kz.ilotterytea.frogartha.ui.menu.RoomTopicWidget; +import net.mgsx.gltf.scene3d.scene.SceneManager; +import net.mgsx.gltf.scene3d.scene.SceneSkybox; +import net.mgsx.gltf.scene3d.utils.EnvironmentUtil; public class MenuScreen implements Screen { private FrogarthaGame game; private SessionClient session; private IdentityClient identity; + private PerspectiveCamera camera; + private SceneManager sceneManager; + private Cubemap environmentCubemap; + private Stage stage; private Table gameTable, topicTable, credentialsTable; @@ -39,6 +49,7 @@ public class MenuScreen implements Screen { identity = game.getIdentityClient(); createStage(); + create3D(); Gdx.input.setInputProcessor(stage); } @@ -48,6 +59,12 @@ public class MenuScreen implements Screen { Gdx.gl.glClearColor(0f, 0f, 0f, 1f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); + camera.rotate(2 * delta, 0, 1, 0); + camera.update(); + + sceneManager.update(delta); + sceneManager.render(); + stage.act(delta); stage.draw(); @@ -77,6 +94,7 @@ public class MenuScreen implements Screen { @Override public void resize(int width, int height) { stage.getViewport().update(width, height, true); + sceneManager.updateViewport(width, height); } @Override @@ -97,6 +115,8 @@ public class MenuScreen implements Screen { @Override public void dispose() { stage.dispose(); + sceneManager.dispose(); + environmentCubemap.dispose(); } private void createStage() { @@ -261,4 +281,26 @@ public class MenuScreen implements Screen { controlTable.add(rightGameControlTable).grow(); } + + private void create3D() { + sceneManager = new SceneManager(); + + camera = new PerspectiveCamera(100f, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + camera.near = 1f; + camera.far = 300f; + camera.position.set(0f, 5f, 0f); + + camera.update(); + + sceneManager.setCamera(camera); + + environmentCubemap = EnvironmentUtil.createCubemap( + new InternalFileHandleResolver(), + "skyboxes/menu/", + ".png", + EnvironmentUtil.FACE_NAMES_NEG_POS + ); + + sceneManager.setSkyBox(new SceneSkybox(environmentCubemap)); + } } |
