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

@ -18,18 +18,11 @@ public class Inventory {
public void addItem(Item i) public void addItem(Item i)
{ {
for(int n = 2; n < items.length; n++){ for(int n = 2; n < items.length; n++){
if(i.getId() == 2){ if(items[n] == null){
if(items[1] == null){ items[n] = i;
items[1] = i; n = items.length + 1;
n = items.length + 1; break;
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.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 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.math.Rectangle;
import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer;
public class MainMenu{ public class MainMenuScreen{
@ -22,9 +22,14 @@ public class MainMenu{
Texture startButtonTexture; Texture startButtonTexture;
Texture quitButtonTexture; Texture quitButtonTexture;
Texture backgroundTexture; Texture backgroundTexture;
Texture settingsButtonTexture;
Sprite startButtonSprite; Sprite startButtonSprite;
Sprite quitButtonSprite; Sprite quitButtonSprite;
Sprite backgroundSprite; Sprite backgroundSprite;
Sprite settingsButtonSprite;
boolean hidden;
//CAMERA //CAMERA
@ -32,32 +37,38 @@ public class MainMenu{
float h = Gdx.graphics.getHeight(); float h = Gdx.graphics.getHeight();
OrthographicCamera camera; OrthographicCamera camera;
// Sound // Sound
public Music music; public Music music;
public MainMenu(float volume) { public MainMenuScreen(float volume) {
//MENU-SCREEN //MENU-SCREEN
w = Gdx.graphics.getWidth(); w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight(); h = Gdx.graphics.getHeight();
float wc = w/2; float wc = w/2;
hidden = false;
backgroundTexture = new Texture("sprites/MAINSCREEN.png");
startButtonTexture = new Texture("sprites/startButton.png"); startButtonTexture = new Texture("sprites/startButton.png");
quitButtonTexture = new Texture("sprites/quitButton.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); startButtonSprite = new Sprite(startButtonTexture);
quitButtonSprite = new Sprite(quitButtonTexture); 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.setX(0);
backgroundSprite.setY(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); //camera = new OrthographicCamera(1, h/w);
@ -89,22 +100,30 @@ public class MainMenu{
batch.begin(); batch.begin();
//batch.setProjectionMatrix(camera.combined); //batch.setProjectionMatrix(camera.combined);
backgroundSprite.draw(batch); if(hidden == false){
startButtonSprite.draw(batch); backgroundSprite.draw(batch);
quitButtonSprite.draw(batch); startButtonSprite.draw(batch);
quitButtonSprite.draw(batch);
settingsButtonSprite.draw(batch);
}
batch.end(); batch.end();
} }
public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt public int click(int x, int y){ // prueft ob cursor mit button (START) ueberlappt
if(hidden == false){
Rectangle r = new Rectangle();
r.set(x, h-y, 1, 1); Rectangle r = new Rectangle();
if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){ r.set(x, h-y, 1, 1);
return 0; if(Intersector.overlaps(r, startButtonSprite.getBoundingRectangle())){
} return 0; //go ingame
if(Intersector.overlaps(r, quitButtonSprite.getBoundingRectangle())){ }
return 1; if(Intersector.overlaps(r, quitButtonSprite.getBoundingRectangle())){
return 1; //Exit Game
}
if(Intersector.overlaps(r, settingsButtonSprite.getBoundingRectangle())){
return 2; //Settings
}
} }
return -1; return -1;
@ -114,6 +133,17 @@ public class MainMenu{
music.dispose(); 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 * @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