master
GammelJAN 6 years ago
parent 02639b3986
commit f603bd36ef

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

@ -30,10 +30,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
SpriteBatch batch;
Dungeon d;
DungeonGenerator dg;
MainMenu v;
Timer tEntities;
GameScreen m;
//SCREENS
MainMenuScreen mm;
GameScreen gs;
HudContainer hc;
PauseScreen ps;
SettingsScreen ss;
ControlsScreen cs;
//
int tileX;
int tileY;
@ -48,7 +56,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
int roomAmount;
float volume;
Entity[] arrows;
Texture verticalAttack;
Texture horizontalAttack;
@ -57,18 +64,17 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
Timer entityMovement;
HudContainer hc;
@Override
public void create(){
volume = 0.01f;
volume = 0.05f;
arrows = new Entity[10];
roomX = 10;
roomY = 6;
batch = new SpriteBatch();
v = new MainMenu(volume);
mm = new MainMenuScreen(volume);
dg = new DungeonGenerator();
@ -97,14 +103,14 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
entityMovement.scheduleTask(new Timer.Task() {
@Override
public void run() {
if(m != null){
if(gs != null){
//m.updateEntitySprite(d.getCurrentEntities());
for(int i = 0; i < d.getCurrentEntities().length; i++){
if(d.getCurrentEntities()[i] != null){
// Gets the collisions relevant sprites
MapObjects mapObjects = m.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers().get(0).getObjects();
Rectangle playerSprite = m.getPlayer().getCollisionSprite();
MapObjects mapObjects = gs.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers().get(0).getObjects();
Rectangle playerSprite = gs.getPlayer().getCollisionSprite();
Entity temp = d.getCurrentEntities()[i];
@ -112,7 +118,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
int y = (int) temp.getyPos();
Entity arrow = d.getCurrentEntities()[i].move((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos());
Sprite tempObject = m.entitySprites[i];
Sprite tempObject = gs.entitySprites[i];
tempObject.setPosition(temp.getxPos(), temp.getyPos());
@ -142,10 +148,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
if(d.getCurrentEntities()[i].getId() != 2){
for(int j = 0; j < m.entitySprites.length; j++){
for(int j = 0; j < gs.entitySprites.length; j++){
if(i != j){
if(d.getCurrentEntities()[j] != null && d.getCurrentEntities()[j].getId() != 2){
if(Intersector.overlaps(tempObject.getBoundingRectangle(), m.entitySprites[j].getBoundingRectangle())){
if(Intersector.overlaps(tempObject.getBoundingRectangle(), gs.entitySprites[j].getBoundingRectangle())){
overlaps = true;
break;
}
@ -163,13 +169,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
tempObject.setPosition(x, y);
}
m.entitySprites[i] = tempObject;
gs.entitySprites[i] = tempObject;
if(arrow != null){
for(int k = 5; k < d.getCurrentEntities().length; k++){
if(d.getCurrentEntities()[k] == null){
d.getCurrentEntities()[k] = arrow;
m.updateEntitySprite(d.getCurrentEntities());
gs.updateEntitySprite(d.getCurrentEntities());
break;
}
}
@ -177,7 +183,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(delete && d.getCurrentEntities()[i].getId() == 2 || d.getCurrentEntities()[i].getToDelete()){
d.getCurrentEntities()[i] = null;
m.updateEntitySprite(d.getCurrentEntities());
gs.updateEntitySprite(d.getCurrentEntities());
}
}
@ -194,14 +200,20 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public void render(){
//PASSIERT IN MAINMENU
if(v != null){
v.render(batch);
if(mm != null){
mm.render(batch);
}
if(ss != null){
ss.render(batch, volume);
}
if(cs != null){
cs.render(batch);
}
//PASSIERT IN GAMESCREEN
if(m != null){
if(gs != null){
if(v == null){
if(mm == null){
// Position des Players, etc. werden aktualisiert
updateObjects(level, roomPosX, roomPosY);
@ -217,7 +229,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
// Render methode zum rendern der einzelnen Sprites wird aufgerufen
m.render(batch, d.getPlayer(), d.getCurrentEntities(), arrows, tileX, tileY, level, roomPosX, roomPosY);
gs.render(batch, d.getPlayer(), d.getCurrentEntities(), tileX, tileY, level, roomPosX, roomPosY);
hc.updateHud(batch, d.getPlayer());
d.getPlayer().updateItems();
}
@ -232,7 +244,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public void updateObjects(int level, int roomPosX, int roomPosY){
MapLayers layers = m.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers();
MapLayers layers = gs.getM().getMaps()[level][roomPosX][roomPosY].getMap().getLayers();
MapObjects objects = layers.get(0).getObjects();
//System.out.println(objects.getCount());
@ -244,12 +256,12 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
float x = d.getPlayer().getxPos();
d.getPlayer().updateX();
m.getPlayer().updateCollisionX((int) d.getPlayer().getxPos());
gs.getPlayer().updateCollisionX((int) d.getPlayer().getxPos());
for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){
Rectangle rectangle = rectangleObject.getRectangle();
if(Intersector.overlaps(rectangle, m.getPlayer().getCollisionSprite())){
if(Intersector.overlaps(rectangle, gs.getPlayer().getCollisionSprite())){
d.getPlayer().setxPos(x);
@ -259,12 +271,12 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
float y = d.getPlayer().getyPos();
d.getPlayer().updateY();
m.getPlayer().updateCollision((int) d.getPlayer().getxPos(),(int) d.getPlayer().getyPos());
gs.getPlayer().updateCollision((int) d.getPlayer().getxPos(),(int) d.getPlayer().getyPos());
for(RectangleMapObject rectangleObject : objects.getByType(RectangleMapObject.class)){
Rectangle rectangle = rectangleObject.getRectangle();
if(Intersector.overlaps(rectangle, m.getPlayer().getCollisionSprite())){
if(Intersector.overlaps(rectangle, gs.getPlayer().getCollisionSprite())){
d.getPlayer().setyPos(y);
@ -296,7 +308,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
roomPosY += 1;
d.getPlayer().setxPos((roomX / 2)* 48);
d.getPlayer().setyPos(48);
m.startLoadingScreen();
gs.startLoadingScreen();
}
// rechts
@ -306,7 +318,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
roomPosX += 1;
d.getPlayer().setxPos(48);
d.getPlayer().setyPos((roomY / 2)*48);
m.startLoadingScreen();
gs.startLoadingScreen();
}
// unten
@ -316,7 +328,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
roomPosY -= 1;
d.getPlayer().setxPos((roomX / 2)*48);
d.getPlayer().setyPos(roomY*48 - 48);
m.startLoadingScreen();
gs.startLoadingScreen();
}
// links
@ -326,7 +338,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
roomPosX -= 1;
d.getPlayer().setxPos((roomX*48) - 48);
d.getPlayer().setyPos((roomY / 2)*48);
m.startLoadingScreen();
gs.startLoadingScreen();
}
if(roomPosX == d.getCurrentLevel().getExit()[0] && roomPosY == d.getCurrentLevel().getExit()[1]){
@ -335,7 +347,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
d.getPlayer().setMovementY(0f);
d.getPlayer().setMovementX(0f);
m.startLoadingScreen();
gs.startLoadingScreen();
level++;
@ -360,11 +372,11 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public ArrayList<ItemContainer> playerPickUp(){
ArrayList<ItemContainer> tempItems = d.getCurrentRoom().getItems();
ArrayList<AnimatedObject> tempSprites = m.getM().getMaps()[level][roomPosX][roomPosY].getMapItems();
ArrayList<AnimatedObject> tempSprites = gs.getM().getMaps()[level][roomPosX][roomPosY].getMapItems();
ArrayList<ItemContainer> garbageCollector = new ArrayList<>();
for(int i = 0; i < tempItems.size(); i++){
if(Intersector.overlaps(m.getPlayer().getCollisionSprite(), tempSprites.get(i).getSprite().getBoundingRectangle())){
if(Intersector.overlaps(gs.getPlayer().getCollisionSprite(), tempSprites.get(i).getSprite().getBoundingRectangle())){
garbageCollector.add(tempItems.get(i));
tempItems.remove(i);
@ -382,46 +394,46 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public boolean keyDown(int keycode) {
if(keycode == Input.Keys.A){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementX(-3f);
}
}
if(keycode == Input.Keys.D){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementX(+3f);
}
}
if(keycode == Input.Keys.S){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementY(-3f);
}
}
if(keycode == Input.Keys.W){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementY(3f);
}
}
if(keycode == Input.Keys.E){
if(v != null){}
if(m != null && m.getIsLoading() == false){
d.setCurrentEntities(m.playerAttack(d.getCurrentEntities(), d.getPlayer(), batch));
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
d.setCurrentEntities(gs.playerAttack(d.getCurrentEntities(), d.getPlayer(), batch));
}
}
if(keycode == Input.Keys.F){
if(v != null){}
if(m != null && m.getIsLoading() == false){
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
//Item k = new Sword(1);
//m.addItem(k);
//d.setCurrentItemContainer(m.playerPickUp(d.getCurrentItemContainer(), d.getPlayer()));
@ -434,38 +446,16 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
if(keycode == Input.Keys.R){
if(v != null){}
if(m != null && m.getIsLoading() == false){
if(mm != null){}
if(gs != null && gs.getIsLoading() == false){
d.getPlayer().getInv().equipItem();
}
}
if(keycode == Input.Keys.UP){
volume += 0.1f;
if(v != null){
v.music.setVolume(volume);
}
if(m != null){
m.music.setVolume(volume);
}
}
if(keycode == Input.Keys.DOWN){
if(volume >= 0.1f){
volume -= 0.1f;
}
if(v != null){
v.music.setVolume(volume);
}
if(m != null){
m.music.setVolume(volume);
}
}
if(keycode == Input.Keys.Q){
if(m != null && m.getIsLoading() == false){
if(gs != null && gs.getIsLoading() == false){
d.getPlayer().getInv().dropItem();
}
}
@ -475,33 +465,33 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
@Override
public boolean keyUp(int keycode) {
if(keycode == Input.Keys.A){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementX(0);
}
}
if(keycode == Input.Keys.D){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementX(0);
}
}
if(keycode == Input.Keys.S){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementY(0);
}
}
if(keycode == Input.Keys.W){
if(v != null){
if(mm != null){
}
if(m != null){
if(gs != null){
d.getPlayer().setMovementY(0);
}
}
@ -518,38 +508,88 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
public boolean touchDown(int screenX, int screenY, int pointer, int button)
{
if(button == Input.Buttons.LEFT){
if(v != null){
switch(v.click(screenX, screenY)){
case -1:
return true;
case 0:
v.cleanUp();
v = null;
m = new GameScreen(d, volume);
hc = new HudContainer();
m.startLoadingScreen();
return true;
case 1:
v.cleanUp();
v = null;
m = new GameScreen(d, volume);
return true;
}
switch(click(screenX, screenY)){
case -1: // -1: nothing hit -- 0: go ingame -- 1: EXIT game -- 2: goto settings -- 3: goto controls -- 4: goto MainMenuScreen -- 9: volume down -- 10: volume up
return true;
case 0:
mm.cleanUp();
mm = null;
gs = new GameScreen(d, volume);
hc = new HudContainer();
gs.startLoadingScreen();
return true;
case 1:
mm.cleanUp();
mm = null;
gs = new GameScreen(d, volume);
return true;
case 2:
mm.hide();
cs = null;
ss = new SettingsScreen();
return true;
case 3:
mm.hide();
ss = null;
cs = new ControlsScreen();
return true;
case 4:
ss = null;
cs = null;
mm.appear();
return true;
case 9:
if(volume > 0f){
volume -= 0.05f;
}
if(mm != null){
mm.music.setVolume(volume);
}
if(gs != null){
gs.music.setVolume(volume);
}
return true;
case 10:
volume += 0.05f;
if(mm != null){
mm.music.setVolume(volume);
}
if(gs != null){
gs.music.setVolume(volume);
}
return true;
}
return true;
}
if(m != null && m.getIsLoading() == false){
return true;
}
if(gs != null && gs.getIsLoading() == false){
return true;
}
}
return true;
}
public int click(int x, int y){
if(mm != null && mm.getHidden() == false){
return mm.click(x, y);
}
if(ss != null){
return ss.click(x, y);
}
if(cs != null){
return cs.click(x, y);
}
return -1;
}
@Override
public boolean touchUp(int i, int i1, int i2, int i3) {
return false;
@ -567,7 +607,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
@Override
public boolean scrolled(int i) {
if(m != null){
if(gs != null){
if(i == -1 && d.getPlayer().getInv().getSelected() == 0){return true;}
else if(i == 1 && d.getPlayer().getInv().getSelected() == 7){return true;}
else{

@ -18,18 +18,11 @@ public class Inventory {
public void addItem(Item i)
{
for(int n = 2; n < items.length; n++){
if(i.getId() == 2){
if(items[1] == null){
items[1] = i;
n = items.length + 1;
break;
}
}
if(items[n] == null){
items[n] = i;
n = items.length + 1;
break;
}
if(items[n] == null){
items[n] = i;
n = items.length + 1;
break;
}
}
}

@ -0,0 +1,65 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.dungeoncrawler.view;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
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.Intersector;
import com.badlogic.gdx.math.Rectangle;
/**
*
* @author bfz
*/
public class ControlsScreen {
float w;
float h;
Texture backButtonTexture;
Sprite backButtonSprite;
public ControlsScreen(){
w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();
float wc = w/2;
backButtonTexture = new Texture("sprites/backButton.png");
backButtonSprite = new Sprite(backButtonTexture);
}
public void render (SpriteBatch batch) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
//batch.setProjectionMatrix(camera.combined);
backButtonSprite.draw(batch);
batch.end();
}
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt
Rectangle r = new Rectangle();
r.set(x, h-y, 1, 1);
if(Intersector.overlaps(r, backButtonSprite.getBoundingRectangle())){
return 2; //go settingScreen
}
return -1;
}
}

@ -176,7 +176,7 @@ public class GameScreen {
}
public void render (SpriteBatch batch, Player p, Entity[] e, Entity[] arrows, int tileX, int tileY, int level, int roomPosX, int roomPosY) {
public void render (SpriteBatch batch, Player p, Entity[] e, int tileX, int tileY, int level, int roomPosX, int roomPosY) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

@ -14,7 +14,7 @@ import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.utils.Timer;
public class MainMenu{
public class MainMenuScreen{
@ -22,9 +22,14 @@ public class MainMenu{
Texture startButtonTexture;
Texture quitButtonTexture;
Texture backgroundTexture;
Texture settingsButtonTexture;
Sprite startButtonSprite;
Sprite quitButtonSprite;
Sprite backgroundSprite;
Sprite settingsButtonSprite;
boolean hidden;
//CAMERA
@ -32,32 +37,38 @@ public class MainMenu{
float h = Gdx.graphics.getHeight();
OrthographicCamera camera;
// Sound
public Music music;
public MainMenu(float volume) {
public MainMenuScreen(float volume) {
//MENU-SCREEN
w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();
float wc = w/2;
hidden = false;
backgroundTexture = new Texture("sprites/MAINSCREEN.png");
startButtonTexture = new Texture("sprites/startButton.png");
quitButtonTexture = new Texture("sprites/quitButton.png");
backgroundTexture = new Texture("sprites/MAINSCREEN.png");
settingsButtonTexture = new Texture("sprites/settingsButton.png");
backgroundSprite = new Sprite(backgroundTexture);
startButtonSprite = new Sprite(startButtonTexture);
quitButtonSprite = new Sprite(quitButtonTexture);
backgroundSprite = new Sprite(backgroundTexture);
settingsButtonSprite = new Sprite(settingsButtonTexture);
startButtonSprite.setX(100);
startButtonSprite.setY(350);
quitButtonSprite.setX(50);
quitButtonSprite.setY(50);
backgroundSprite.setX(0);
backgroundSprite.setY(0);
startButtonSprite.setX(backgroundSprite.getX() + 100);
startButtonSprite.setY(backgroundSprite.getY() + 350);
quitButtonSprite.setX(backgroundSprite.getX() + 50);
quitButtonSprite.setY(backgroundSprite.getY() + 50);
settingsButtonSprite.setX(backgroundSprite.getX() + 100);
settingsButtonSprite.setY(backgroundSprite.getY() + 250);
//camera = new OrthographicCamera(1, h/w);
@ -89,22 +100,30 @@ public class MainMenu{
batch.begin();
//batch.setProjectionMatrix(camera.combined);
backgroundSprite.draw(batch);
startButtonSprite.draw(batch);
quitButtonSprite.draw(batch);
if(hidden == false){
backgroundSprite.draw(batch);
startButtonSprite.draw(batch);
quitButtonSprite.draw(batch);
settingsButtonSprite.draw(batch);
}
batch.end();
}
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt
Rectangle r = new Rectangle();
r.set(x, h-y, 1, 1);
if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){
return 0;
}
if(Intersector.overlaps(r, quitButtonSprite.getBoundingRectangle())){
return 1;
if(hidden == false){
Rectangle r = new Rectangle();
r.set(x, h-y, 1, 1);
if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){
return 0; //go ingame
}
if(Intersector.overlaps(r, quitButtonSprite.getBoundingRectangle())){
return 1; //Exit Game
}
if(Intersector.overlaps(r, settingsButtonSprite.getBoundingRectangle())){
return 2; //Settings
}
}
return -1;
@ -114,6 +133,17 @@ public class MainMenu{
music.dispose();
}
public void hide(){
hidden = true;
}
public void appear(){
hidden = false;
}
public boolean getHidden(){
return hidden;
}

@ -14,9 +14,9 @@ import com.badlogic.gdx.graphics.GL20;
*
* @author bfz
*/
public class MenuScreen{
public class PauseScreen{
public MenuScreen() {
public PauseScreen() {
}

@ -0,0 +1,127 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.dungeoncrawler.view;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
/**
*
* @author bfz
*/
public class SettingsScreen {
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
Texture controlsButtonTexture;
Texture volumeButtonTexture;
Texture volumeUpTexture;
Texture volumeDownTexture;
Texture volumeTexture;
Texture backButtonTexture;
Sprite controlsButtonSprite;
Sprite volumeButtonSprite;
Sprite volumeUpSprite;
Sprite volumeDownSprite;
Sprite volumeSprite;
Sprite backButtonSprite;
public SettingsScreen(){
w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();
float wc = w/2;
controlsButtonTexture = new Texture("sprites/controlsButton.png");
volumeButtonTexture = new Texture("sprites/volumeButton.png");
volumeUpTexture = new Texture("sprites/volumeUpButton.png");
volumeDownTexture = new Texture("sprites/volumeDownButton.png");
volumeTexture = new Texture("sprites/volume.png");
backButtonTexture = new Texture("sprites/backButton.png");
controlsButtonSprite = new Sprite(controlsButtonTexture);
volumeButtonSprite = new Sprite(volumeButtonTexture);
volumeUpSprite = new Sprite(volumeUpTexture);
volumeDownSprite = new Sprite(volumeDownTexture);
volumeSprite = new Sprite(volumeTexture);
backButtonSprite = new Sprite(backButtonTexture);
}
public void render (SpriteBatch batch, float volume) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
controlsButtonSprite.setPosition(200, 600);
volumeButtonSprite.setPosition(200, 500);
volumeDownSprite.setPosition(volumeButtonSprite.getX() + 230, volumeButtonSprite.getY()+28);
volumeUpSprite.setPosition(volumeButtonSprite.getX() + 340, volumeButtonSprite.getY()+28);
backButtonSprite.setPosition(50, 50);
float n = 0;
if(volume != 0){
n = volume / 1f;
}
int newWidth = (int) (n * volumeTexture.getWidth());
if(newWidth == 0){
TextureRegion[][] volumeRegion = TextureRegion.split(volumeTexture,1, volumeTexture.getHeight());
volumeSprite = new Sprite(volumeRegion[0][0]);
volumeSprite.setPosition(-5,-5);
}
else{
TextureRegion[][] volumeRegion = TextureRegion.split(volumeTexture,newWidth, volumeTexture.getHeight());
volumeSprite = new Sprite(volumeRegion[0][0]);
volumeSprite.setPosition(volumeButtonSprite.getX() + 278, volumeButtonSprite.getY()+34);
}
batch.begin();
controlsButtonSprite.draw(batch);
volumeButtonSprite.draw(batch);
volumeUpSprite.draw(batch);
volumeDownSprite.draw(batch);
volumeSprite.draw(batch);
backButtonSprite.draw(batch);
batch.end();
}
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt
Rectangle r = new Rectangle();
r.set(x, h-y, 1, 1);
if(Intersector.overlaps(r, controlsButtonSprite.getBoundingRectangle())){
return 3; //ControlsScreen
}
if(Intersector.overlaps(r, backButtonSprite.getBoundingRectangle())){
return 4; //MainMenuScreen
}
if(Intersector.overlaps(r, volumeDownSprite.getBoundingRectangle())){
return 9; //volume DOWN
}
if(Intersector.overlaps(r, volumeUpSprite.getBoundingRectangle())){
return 10; //volume UP
}
return -1;
}
}
Loading…
Cancel
Save