diff options
author | Dmitrii Morozov <snoopdesigns@gmail.com> | 2025-01-04 13:04:44 +0100 |
---|---|---|
committer | Dmitrii Morozov <snoopdesigns@gmail.com> | 2025-01-04 13:04:44 +0100 |
commit | 6941e695e24ced7076449d27a05a1b7924c08d03 (patch) | |
tree | 3e159c7a4a2d2f044756082a52ab83ed5561a08a | |
parent | af88f7f96b64acd013c964383028311d6d310d5e (diff) |
Simple background and camera
-rw-r--r-- | assets/libgdx.png | bin | 2458 -> 0 bytes | |||
-rw-r--r-- | assets/sc_map.png | bin | 0 -> 1476927 bytes | |||
-rw-r--r-- | core/src/main/java/org/snoopdesigns/endless/EndlessGame.java | 64 | ||||
-rw-r--r-- | desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java | 1 |
4 files changed, 63 insertions, 2 deletions
diff --git a/assets/libgdx.png b/assets/libgdx.png Binary files differdeleted file mode 100644 index 6c7bfca..0000000 --- a/assets/libgdx.png +++ /dev/null diff --git a/assets/sc_map.png b/assets/sc_map.png Binary files differnew file mode 100644 index 0000000..1ae81b0 --- /dev/null +++ b/assets/sc_map.png diff --git a/core/src/main/java/org/snoopdesigns/endless/EndlessGame.java b/core/src/main/java/org/snoopdesigns/endless/EndlessGame.java index 53884dd..1453a6e 100644 --- a/core/src/main/java/org/snoopdesigns/endless/EndlessGame.java +++ b/core/src/main/java/org/snoopdesigns/endless/EndlessGame.java @@ -1,32 +1,92 @@ package org.snoopdesigns.endless; import com.badlogic.gdx.ApplicationAdapter; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.utils.ScreenUtils; public class EndlessGame extends ApplicationAdapter { + private static final int WORLD_WIDTH = 100; + private static final int WORLD_HEIGHT = 100; + + private static final int DEFAULT_VIEWPORT_WIDTH = 30; + private static final int DEFAULT_VIEWPORT_HEIGHT = 30; + + private OrthographicCamera cam; private SpriteBatch batch; + private Sprite imageSprite; private Texture image; @Override public void create() { batch = new SpriteBatch(); - image = new Texture("libgdx.png"); + image = new Texture("sc_map.png"); + imageSprite = new Sprite(image); + imageSprite.setPosition(0, 0); + imageSprite.setSize(WORLD_WIDTH, WORLD_HEIGHT); + + float graphicsWidth = Gdx.graphics.getWidth(); + float graphicsHeight = Gdx.graphics.getHeight(); + + cam = new OrthographicCamera( + DEFAULT_VIEWPORT_WIDTH, + DEFAULT_VIEWPORT_HEIGHT * (graphicsHeight / graphicsWidth)); + cam.position.set(cam.viewportWidth / 2f, cam.viewportHeight / 2f, 0); + cam.update(); } @Override public void render() { + handleInput(); + cam.update(); + batch.setProjectionMatrix(cam.combined); + ScreenUtils.clear(0.15f, 0.15f, 0.2f, 1f); + batch.begin(); - batch.draw(image, 140, 210); + imageSprite.draw(batch); batch.end(); } @Override public void dispose() { + imageSprite.getTexture().dispose(); batch.dispose(); image.dispose(); } + + private void handleInput() { + if (Gdx.input.isKeyPressed(Input.Keys.A)) { + cam.zoom += 0.02; + } + if (Gdx.input.isKeyPressed(Input.Keys.Q)) { + cam.zoom -= 0.02; + } + if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) { + cam.translate(-3, 0, 0); + } + if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) { + cam.translate(3, 0, 0); + } + if (Gdx.input.isKeyPressed(Input.Keys.DOWN)) { + cam.translate(0, -3, 0); + } + if (Gdx.input.isKeyPressed(Input.Keys.UP)) { + cam.translate(0, 3, 0); + } + + cam.zoom = MathUtils.clamp(cam.zoom, 0.1f, 100 / cam.viewportWidth); + + float effectiveViewportWidth = cam.viewportWidth * cam.zoom; + float effectiveViewportHeight = cam.viewportHeight * cam.zoom; + + cam.position.x = MathUtils.clamp(cam.position.x, effectiveViewportWidth / 2f, 100 - effectiveViewportWidth / 2f); + cam.position.y = MathUtils.clamp(cam.position.y, effectiveViewportHeight / 2f, 100 - effectiveViewportHeight / 2f); + } } diff --git a/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java b/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java index 6aaa364..7221dac 100644 --- a/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java +++ b/desktop/src/main/java/org/snoopdesigns/endless/desktop/DesktopLauncher.java @@ -21,6 +21,7 @@ public class DesktopLauncher { configuration.useVsync(true); configuration.setForegroundFPS(Lwjgl3ApplicationConfiguration.getDisplayMode().refreshRate + 1); configuration.setWindowedMode(640, 480); + //configuration.setFullscreenMode(Lwjgl3ApplicationConfiguration.getDisplayMode()); return configuration; } }
\ No newline at end of file |