From 6d1e54d8816b36f8391fc4320b1dbb24aed4d3d5 Mon Sep 17 00:00:00 2001 From: GammelJAN Date: Fri, 18 Dec 2020 23:09:43 +0100 Subject: [PATCH] viewport demo --- core/src/com/trs/main/Main.java | 52 ++++++++++++++++--- core/src/com/trs/main/Player.java | 19 +++++-- .../com/trs/main/desktop/DesktopLauncher.java | 3 ++ 3 files changed, 64 insertions(+), 10 deletions(-) diff --git a/core/src/com/trs/main/Main.java b/core/src/com/trs/main/Main.java index 6809c0a..2def914 100644 --- a/core/src/com/trs/main/Main.java +++ b/core/src/com/trs/main/Main.java @@ -3,27 +3,65 @@ package com.trs.main; import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.InputProcessor; +import com.badlogic.gdx.graphics.Camera; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.OrthographicCamera; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.badlogic.gdx.math.Rectangle; +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.utils.Scaling; +import com.badlogic.gdx.utils.viewport.FitViewport; +import com.badlogic.gdx.utils.viewport.ScalingViewport; import com.badlogic.gdx.utils.viewport.ScreenViewport; public class Main extends ApplicationAdapter implements InputProcessor{ + OrthographicCamera camera; Stage stage; + Rectangle viewportCheck; + ShapeRenderer renderer; + @Override public void create () { - stage = new Stage(new ScreenViewport()); - Player p = new Player(); - stage.addActor(p); - stage.setKeyboardFocus(p); - Gdx.input.setInputProcessor(stage); - } + renderer = new ShapeRenderer(); + viewportCheck = new Rectangle(0, 0, 800f, 800f); + camera = new OrthographicCamera(); + camera.setToOrtho(false, 800f, 800f); + camera.update(); + stage = new Stage(new FitViewport(800f,800f, camera)); + Player p = new Player(); + stage.addActor(p); + stage.setKeyboardFocus(p); + renderer.setProjectionMatrix(camera.combined); + Gdx.input.setInputProcessor(stage); + } + + @Override + public void resize(int width, int height) { + stage.getViewport().update(width, height, false); + super.resize(width, height); //To change body of generated methods, choose Tools | Templates. + } + + @Override public void render () { - Gdx.gl.glClearColor(1, 0, 0, 1); + Gdx.gl.glClearColor(1f, (20f/255f), (147f/255f), 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); + renderer.begin(ShapeRenderer.ShapeType.Filled); + renderer.setColor(Color.WHITE); + renderer.rect(viewportCheck.getX(), viewportCheck.getY(), viewportCheck.getWidth(), viewportCheck.getHeight()); + renderer.setColor(Color.BLACK); + Vector2 mouseRel = stage.getViewport().unproject(new Vector2(Gdx.input.getX(), Gdx.input.getY())); + renderer.circle(mouseRel.x,mouseRel.y, 20); + renderer.end(); + + stage.act(Gdx.graphics.getDeltaTime()); stage.draw(); } diff --git a/core/src/com/trs/main/Player.java b/core/src/com/trs/main/Player.java index 5332e38..69dffa3 100644 --- a/core/src/com/trs/main/Player.java +++ b/core/src/com/trs/main/Player.java @@ -10,6 +10,7 @@ import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.Sprite; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.scenes.scene2d.Actor; /** @@ -19,17 +20,23 @@ import com.badlogic.gdx.scenes.scene2d.Actor; */ public class Player extends Actor{ + //Rectangle r; + //ShapeRenderer renderer; Texture t; Player(){ + //renderer = new ShapeRenderer(); + //r = new Rectangle(0,0,800,800); + //setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight()); t = new Texture(Gdx.files.internal("badlogic.jpg")); - setBounds(50, 50, t.getWidth(), t.getHeight()); + setBounds(0, 0, t.getWidth(), t.getHeight()); } @Override protected void positionChanged() { - setX(getX()); - setY(getY()); + //r.setX(getX()); + //r.setY(getY()); + super.positionChanged(); //To change body of generated methods, choose Tools | Templates. } @@ -54,6 +61,12 @@ public class Player extends Actor{ @Override public void draw(Batch batch, float parentAlpha) { + //batch.end(); + //renderer.setProjectionMatrix(batch.getProjectionMatrix()); + //renderer.begin(ShapeRenderer.ShapeType.Filled); + //renderer.rect(getX(), getY(), getWidth(), getHeight()); + //renderer.end(); + //batch.begin(); batch.draw(t, getX(), getY()); super.draw(batch, parentAlpha); //To change body of generated methods, choose Tools | Templates. } diff --git a/desktop/src/com/trs/main/desktop/DesktopLauncher.java b/desktop/src/com/trs/main/desktop/DesktopLauncher.java index 52f953a..24a9b0a 100644 --- a/desktop/src/com/trs/main/desktop/DesktopLauncher.java +++ b/desktop/src/com/trs/main/desktop/DesktopLauncher.java @@ -7,6 +7,9 @@ import com.trs.main.Main; public class DesktopLauncher { public static void main (String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); + //config.width=800; + //config.height=800; + config.resizable = true; new LwjglApplication(new Main(), config); } }