movement and viewports kinda fixed, ready for playstore update

master
JanEhehalt 4 years ago
parent ee66afd2c4
commit b823edd931

@ -12,6 +12,8 @@ public class AndroidLauncher extends AndroidApplication {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.hideStatusBar = true; config.hideStatusBar = true;
config.numSamples = 0;
config.useImmersiveMode = true;
initialize(new Controller(), config); initialize(new Controller(), config);
} }
} }

@ -18,7 +18,9 @@ import com.badlogic.gdx.maps.MapObjects;
import com.badlogic.gdx.maps.objects.RectangleMapObject; import com.badlogic.gdx.maps.objects.RectangleMapObject;
import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.StretchViewport; import com.badlogic.gdx.utils.viewport.StretchViewport;
import com.badlogic.gdx.utils.viewport.Viewport; import com.badlogic.gdx.utils.viewport.Viewport;
import com.dungeoncrawler.view.*; import com.dungeoncrawler.view.*;
@ -36,6 +38,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
float GAME_WORLD_WIDTH; float GAME_WORLD_WIDTH;
float GAME_WORLD_HEIGHT; float GAME_WORLD_HEIGHT;
boolean shotFrame = false;
final boolean TOUCH = true; final boolean TOUCH = true;
// CAMERA // CAMERA
@ -95,7 +99,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0); camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0);
@ -154,6 +158,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public void run() { public void run() {
if(gs != null){ if(gs != null){
shotFrame = false;
if(gs.player.getAttackState() == 2){ if(gs.player.getAttackState() == 2){
playerAttack(d.getCurrentEntities(), d.getPlayer(), d.getPlayer().getDirection()); playerAttack(d.getCurrentEntities(), d.getPlayer(), d.getPlayer().getDirection());
} }
@ -344,7 +349,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public void render(){ public void render(){
Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
if(end){ if(end){
if(es == null){ if(es == null){
isPaused = true; isPaused = true;
@ -356,7 +360,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0); camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0);
@ -969,7 +973,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2 - 170, GAME_WORLD_HEIGHT / 2 + 20, 0); camera.position.set(GAME_WORLD_WIDTH / 2 - 170, GAME_WORLD_HEIGHT / 2 + 20, 0);
@ -990,7 +994,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2 - 170, GAME_WORLD_HEIGHT / 2 + 20, 0); camera.position.set(GAME_WORLD_WIDTH / 2 - 170, GAME_WORLD_HEIGHT / 2 + 20, 0);
@ -1008,7 +1012,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0); camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0);
@ -1074,7 +1078,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(gs != null){ if(gs != null){
if(!d.getPlayer().isToDelete()) { if(!d.getPlayer().isToDelete()) {
ArrayList<Integer> clicked = gs.click(screenX,screenY); ArrayList<Integer> clicked = gs.click(screenX,screenY, viewport);
d.getPlayer().setMovementX(0);
d.getPlayer().setMovementY(0);
for (Integer i : clicked) { for (Integer i : clicked) {
switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown, 8: pickUp switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown, 8: pickUp
case 0: case 0:
@ -1096,6 +1102,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
case 4: case 4:
if(TOUCH) if(TOUCH)
if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) {
shotFrame = true;
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos());
for (int k = 5; k < d.getCurrentEntities().length; k++) { for (int k = 5; k < d.getCurrentEntities().length; k++) {
@ -1112,6 +1119,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
case 5: case 5:
if(TOUCH) if(TOUCH)
if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) {
shotFrame = true;
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1);
for (int k = 5; k < d.getCurrentEntities().length; k++) { for (int k = 5; k < d.getCurrentEntities().length; k++) {
@ -1127,6 +1135,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
case 6: case 6:
if(TOUCH) if(TOUCH)
if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) {
shotFrame = true;
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos());
for (int k = 5; k < d.getCurrentEntities().length; k++) { for (int k = 5; k < d.getCurrentEntities().length; k++) {
@ -1142,6 +1151,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
case 7: case 7:
if(TOUCH) if(TOUCH)
if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) { if (!gs.getIsLoading() && !d.getPlayer().isToDelete()) {
shotFrame = true;
Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1);
for (int k = 5; k < d.getCurrentEntities().length; k++) { for (int k = 5; k < d.getCurrentEntities().length; k++) {
@ -1254,13 +1264,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
return es.click(x, y); return es.click(x, y);
} }
if(ps != null){ if(ps != null){
return ps.click(x,y); return ps.click(x,y, viewport);
} }
if(mm != null && !mm.getHidden()){ if(mm != null && !mm.getHidden()){
return mm.click(x, y); return mm.click(x, y, viewport);
} }
if(ss != null){ if(ss != null){
return ss.click(x, y); return ss.click(x, y, viewport);
} }
if(cs != null){ if(cs != null){
return cs.click(x, y); return cs.click(x, y);
@ -1272,19 +1282,25 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
@Override @Override
public boolean touchUp(int screenX, int screenY, int i2, int i3) { public boolean touchUp(int screenX, int screenY, int i2, int i3) {
if(gs != null){ if(gs != null){
ArrayList<Integer> e = gs.click(screenX,screenY); ArrayList<Integer> e = gs.click(screenX,screenY, viewport);
if(e.contains(0)){ Vector2 mov = new Vector2(d.getPlayer().getMovementX(), d.getPlayer().getMovementY());
if(e.contains(0) && !shotFrame){
d.getPlayer().setMovementX(0); d.getPlayer().setMovementX(0);
} }
if(e.contains(1)){ if(e.contains(1) && !shotFrame){
d.getPlayer().setMovementY(0); d.getPlayer().setMovementY(0);
} }
if(e.contains(2)){ if(e.contains(2) && !shotFrame){
d.getPlayer().setMovementX(0); d.getPlayer().setMovementX(0);
} }
if(e.contains(3)){ if(e.contains(3) && !shotFrame){
d.getPlayer().setMovementY(0); d.getPlayer().setMovementY(0);
} }
if(shotFrame){
d.getPlayer().setMovementX(mov.x);
d.getPlayer().setMovementY(mov.y);
}
/*
for (Integer i : gs.click(screenX,screenY)) { for (Integer i : gs.click(screenX,screenY)) {
switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown
case 0: case 0:
@ -1359,6 +1375,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
} }
} }
*/
} }
return true; return true;
} }
@ -1368,13 +1385,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(gs != null && TOUCH){ if(gs != null && TOUCH){
if(!d.getPlayer().isToDelete()) { if(!d.getPlayer().isToDelete()) {
if(!gs.click(screenX,screenY).contains(0) && !gs.click(screenX,screenY).contains(2)) { if(!gs.click(screenX,screenY, viewport).contains(0) && !gs.click(screenX,screenY, viewport).contains(2)) {
d.getPlayer().setMovementX(0); d.getPlayer().setMovementX(0);
} }
if(!gs.click(screenX,screenY).contains(1) && !gs.click(screenX,screenY).contains(3)) { if(!gs.click(screenX,screenY, viewport).contains(1) && !gs.click(screenX,screenY, viewport).contains(3)) {
d.getPlayer().setMovementY(0); d.getPlayer().setMovementY(0);
} }
for (Integer i : gs.click(screenX,screenY)) { for (Integer i : gs.click(screenX,screenY, viewport)) {
switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown switch (i) { // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown
case 0: case 0:
d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed()); d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed());
@ -1481,7 +1498,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0); camera.position.set(GAME_WORLD_WIDTH / 2, GAME_WORLD_HEIGHT / 2, 0);
@ -1495,7 +1512,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
viewport = null; viewport = null;
camera = new OrthographicCamera(); camera = new OrthographicCamera();
camera.update(); camera.update();
viewport = new StretchViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera); viewport = new FitViewport(GAME_WORLD_WIDTH, GAME_WORLD_HEIGHT, camera);
viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.apply(); viewport.apply();
camera.position.set(GAME_WORLD_WIDTH / 2 - 170, GAME_WORLD_HEIGHT / 2 + 20, 0); camera.position.set(GAME_WORLD_WIDTH / 2 - 170, GAME_WORLD_HEIGHT / 2 + 20, 0);

@ -17,7 +17,9 @@ import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;
import com.badlogic.gdx.math.Circle; import com.badlogic.gdx.math.Circle;
import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Dungeon;
import com.dungeoncrawler.model.Entity; import com.dungeoncrawler.model.Entity;
import com.dungeoncrawler.model.entities.*; import com.dungeoncrawler.model.entities.*;
@ -56,8 +58,8 @@ public class GameScreen {
int mapX = 10; int mapX = 10;
int mapY = 310; int mapY = 310;
int gap = 2; int gap = 2;
int rectWidth = 15; int rectWidth = 12;
int rectHeight = 10; int rectHeight = 7;
float alpha = 0.5f; float alpha = 0.5f;
Timer animations; Timer animations;
@ -211,10 +213,10 @@ public class GameScreen {
controls.add(new Button("sprites/controls/arrowUp.png", 600-170, 125, 5)); controls.add(new Button("sprites/controls/arrowUp.png", 600-170, 125, 5));
controls.add(new Button("sprites/controls/arrowRight.png", 650-170, 75, 6)); controls.add(new Button("sprites/controls/arrowRight.png", 650-170, 75, 6));
controls.add(new Button("sprites/controls/arrowDown.png", 600-170, 25, 7)); controls.add(new Button("sprites/controls/arrowDown.png", 600-170, 25, 7));
controls.add(new Button("sprites/controls/pickUp.png", 160-110, 30, 8)); controls.add(new Button("sprites/controls/pickUp.png", 160-110-40, 30, 8));
controls.add(new Button("sprites/controls/equip1.png", 160-110, 120, 9)); controls.add(new Button("sprites/controls/equip1.png", 160-110-40, 120, 9));
controls.add(new Button("sprites/controls/drop.png", 160+110, 30, 10)); controls.add(new Button("sprites/controls/drop.png", 160+110+40, 30, 10));
controls.add(new Button("sprites/controls/equip2.png", 160+110, 120, 11)); controls.add(new Button("sprites/controls/equip2.png", 160+110+40, 120, 11));
controls.add(new Button("sprites/controls/use.png", 600-170, 200, 12)); controls.add(new Button("sprites/controls/use.png", 600-170, 200, 12));
// INVENTORY // INVENTORY
controls.add(new Button("sprites/controls/inventorySlot.png", -118, 334, 20)); //0 controls.add(new Button("sprites/controls/inventorySlot.png", -118, 334, 20)); //0
@ -623,9 +625,10 @@ public class GameScreen {
} }
} }
} }
public ArrayList<Integer> click(int x, int y){ public ArrayList<Integer> click(int x, int y, Viewport viewport){
x = (int)(((float)x) / (float)Gdx.graphics.getWidth() * 700f) -170; x = (int)viewport.unproject(new Vector2(x,y)).x;
y = 380- (int)(((float)y) / (float)Gdx.graphics.getHeight() * 380f)+ 25; y = (int)viewport.unproject(new Vector2(x,y)).y;
Circle r = new Circle(x,y,5);
mouseX = x; mouseX = x;
mouseY = y; mouseY = y;
ArrayList<Integer> clicks = new ArrayList(); ArrayList<Integer> clicks = new ArrayList();

@ -10,9 +10,12 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Circle;
import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer;
import com.badlogic.gdx.utils.viewport.Viewport;
public class MainMenuScreen{ public class MainMenuScreen{
@ -27,6 +30,8 @@ public class MainMenuScreen{
Sprite maleButton; Sprite maleButton;
Sprite femaleButton; Sprite femaleButton;
BitmapFont font; BitmapFont font;
Vector2 lastMousePos = new Vector2(0,0);
boolean hidden; boolean hidden;
@ -52,7 +57,7 @@ public class MainMenuScreen{
Sprite buttonLeft; Sprite buttonLeft;
String gender; String gender;
Texture cursor;
public MainMenuScreen(float volume) { public MainMenuScreen(float volume) {
@ -64,7 +69,8 @@ public class MainMenuScreen{
gender = "m"; gender = "m";
font = new BitmapFont(); font = new BitmapFont();
hidden = false; hidden = false;
cursor = new Texture("sprites/cursor.png");
Texture backgroundTexture = new Texture("sprites/MAINSCREEN.png"); Texture backgroundTexture = new Texture("sprites/MAINSCREEN.png");
Texture startButtonTexture = new Texture("sprites/startButton.png"); Texture startButtonTexture = new Texture("sprites/startButton.png");
Texture quitButtonTexture = new Texture("sprites/quitButton.png"); Texture quitButtonTexture = new Texture("sprites/quitButton.png");
@ -152,7 +158,7 @@ public class MainMenuScreen{
public void render (SpriteBatch batch) { public void render (SpriteBatch batch) {
batch.begin(); batch.begin();
//batch.setProjectionMatrix(camera.combined); //batch.setProjectionMatrix(camera.combined);
if(hidden == false){ if(hidden == false){
@ -168,7 +174,7 @@ public class MainMenuScreen{
playerSprite.draw(batch); playerSprite.draw(batch);
batch.draw(cursor, lastMousePos.x, lastMousePos.y);
if(gender.equals("m")){ if(gender.equals("m")){
maleButton.draw(batch); maleButton.draw(batch);
@ -183,11 +189,15 @@ public class MainMenuScreen{
} }
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt public int click(int x, int y, Viewport viewport){ // prueft ob cursor mit button (START) ueberlappt
if(hidden == false){ if(hidden == false){
Rectangle r = new Rectangle(); //x = (int)((Gdx.graphics.getWidth() - viewport.getWorldWidth()) / 2f) + (int)(((float)x/(float)Gdx.graphics.getWidth()) * 1600) ;
r.set(x, h-y, 1, 1); //x -= (int)(x*((float)x/(float)Gdx.graphics.getWidth()));
x = (int)viewport.unproject(new Vector2(x,y)).x;
y = (int)h-y;
lastMousePos = new Vector2(x,y);
Circle r = new Circle(x,y,10);
if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){ if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){
return 0; //go ingame return 0; //go ingame
} }

@ -15,8 +15,11 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Circle;
import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.viewport.Viewport;
/** /**
* *
@ -25,7 +28,8 @@ import com.badlogic.gdx.math.Rectangle;
public class PauseScreen{ public class PauseScreen{
float w = Gdx.graphics.getWidth(); float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight(); float h = Gdx.graphics.getHeight();
Vector2 lastMousePos = new Vector2(0,0);
BitmapFont font; BitmapFont font;
@ -36,7 +40,9 @@ public class PauseScreen{
Texture backButtonTexture; Texture backButtonTexture;
Texture quitButtonTexture; Texture quitButtonTexture;
Texture controlsButtonTexture; Texture controlsButtonTexture;
Texture cursor;
Sprite controlsButtonSprite; Sprite controlsButtonSprite;
Sprite volumeButtonSprite; Sprite volumeButtonSprite;
Sprite volumeUpSprite; Sprite volumeUpSprite;
@ -56,7 +62,8 @@ public class PauseScreen{
float wc = w/2; float wc = w/2;
showControls = false; showControls = false;
font = new BitmapFont(); font = new BitmapFont();
cursor = new Texture("sprites/cursor.png");
controlsButtonTexture = new Texture("sprites/controlsButton.png"); controlsButtonTexture = new Texture("sprites/controlsButton.png");
volumeButtonTexture = new Texture("sprites/volumeButton.png"); volumeButtonTexture = new Texture("sprites/volumeButton.png");
volumeUpTexture = new Texture("sprites/volumeUpButton.png"); volumeUpTexture = new Texture("sprites/volumeUpButton.png");
@ -87,7 +94,7 @@ public class PauseScreen{
public void render (SpriteBatch batch, float volume, OrthographicCamera camera) { public void render (SpriteBatch batch, float volume, OrthographicCamera camera) {
float n = 0; float n = 0;
@ -119,6 +126,7 @@ public class PauseScreen{
backButtonSprite.draw(batch); backButtonSprite.draw(batch);
controlsButtonSprite.draw(batch); controlsButtonSprite.draw(batch);
//quitButtonSprite.draw(batch); //quitButtonSprite.draw(batch);
batch.draw(cursor, lastMousePos.x, lastMousePos.y);
if(showControls){ if(showControls){
@ -158,12 +166,13 @@ public class PauseScreen{
} }
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt public int click(int x, int y, Viewport viewport){ // prueft ob cursor mit button (START) ueberlappt
x = (int)viewport.unproject(new Vector2(x,y)).x;
Rectangle r = new Rectangle(); y = (int)h-y;
r.set(x, h-y, 1600, 900); lastMousePos = new Vector2(x, y);
Circle r = new Circle(x,y,10);
/* /*
if(Intersector.overlaps(r, quitButtonSprite.getBoundingRectangle())){ if(Intersector.overlaps(r, quitButtonSprite.getBoundingRectangle())){
return 11; //restart Game return 11; //restart Game

@ -11,8 +11,11 @@ import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Circle;
import com.badlogic.gdx.math.Intersector; import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.viewport.Viewport;
/** /**
* *
@ -101,12 +104,12 @@ public class SettingsScreen {
} }
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt public int click(int x, int y, Viewport viewport){ // prueft ob cursor mit button (START) ueberlappt
x = (int)viewport.unproject(new Vector2(x,y)).x;
Rectangle r = new Rectangle(); y = (int)h-y;
r.set(x, h-y, 1, 1); Circle r = new Circle(x,y,10);
if(Intersector.overlaps(r, controlsButtonSprite.getBoundingRectangle())){ if(Intersector.overlaps(r, controlsButtonSprite.getBoundingRectangle())){
return 3; //ControlsScreen return 3; //ControlsScreen
} }

@ -9,6 +9,7 @@ public class DesktopLauncher {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.width = 1600; config.width = 1600;
config.height = 900; config.height = 900;
config.samples = 0;
new LwjglApplication(new Controller(), config); new LwjglApplication(new Controller(), config);
} }
} }

Loading…
Cancel
Save