master
GammelJAN 6 years ago
parent f8db6b1e57
commit fd831406bb

@ -27,6 +27,8 @@ import com.dungeoncrawler.model.ItemContainer;
import java.util.ArrayList; import java.util.ArrayList;
public class Controller extends ApplicationAdapter implements InputProcessor{ public class Controller extends ApplicationAdapter implements InputProcessor{
SpriteBatch batch; SpriteBatch batch;
Dungeon d; Dungeon d;
DungeonGenerator dg; DungeonGenerator dg;
@ -64,10 +66,15 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
Timer entityMovement; Timer entityMovement;
boolean isPaused;
@Override @Override
public void create(){ public void create(){
isPaused = false;
volume = 0.05f; volume = 0.05f;
roomX = 10; roomX = 10;
@ -212,6 +219,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
},0, 0.03f); },0, 0.03f);
} }
@ -228,11 +237,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(cs != null){ if(cs != null){
cs.render(batch); cs.render(batch);
} }
if(ps != null){
ps.render(batch, volume);
}
//PASSIERT IN GAMESCREEN //PASSIERT IN GAMESCREEN
if(gs != null){ if(gs != null && mm == null && isPaused == false){
if(mm == null){
// Position des Players, etc. werden aktualisiert // Position des Players, etc. werden aktualisiert
updateObjects(level, roomPosX, roomPosY); updateObjects(level, roomPosX, roomPosY);
@ -253,7 +264,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
d.getPlayer().updateItems(); d.getPlayer().updateItems();
} }
} }
}
@Override @Override
@ -480,6 +490,17 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
d.getPlayer().getInv().dropItem(); d.getPlayer().getInv().dropItem();
} }
} }
if(keycode == Input.Keys.ESCAPE){
if(gs != null && gs.getIsLoading() == false){
stop();
}
}
if(keycode == Input.Keys.TAB){
if(gs != null && gs.getIsLoading() == false){
resume();
}
}
return true; return true;
} }
@ -566,6 +587,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
mm.appear(); mm.appear();
return true; return true;
case 5:
resume();
return true;
case 9: case 9:
if(volume > 0f){ if(volume > 0f){
volume -= 0.05f; volume -= 0.05f;
@ -609,6 +634,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
} }
if(cs != null){ if(cs != null){
return cs.click(x, y); return cs.click(x, y);
}
if(gs != null && isPaused == true){
} }
return -1; return -1;
} }
@ -643,4 +671,19 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
return true; return true;
} }
public void stop(){
entityMovement.stop();
isPaused = true;
gs.stop();
ps = new PauseScreen();
}
public void resume(){
isPaused = false;
entityMovement.start();
gs.resume();
ps = null;
}
} }

@ -420,4 +420,15 @@ public class GameScreen {
return m; return m;
} }
public void stop(){
animations.stop();
animatePlayer.stop();
camera = null;
}
public void resume(){
animations.start();
animatePlayer.start();
}
} }

@ -9,17 +9,113 @@ import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input; import com.badlogic.gdx.Input;
import com.badlogic.gdx.graphics.GL20; 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 * @author bfz
*/ */
public class PauseScreen{ public class PauseScreen{
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
Texture volumeButtonTexture;
Texture volumeUpTexture;
Texture volumeDownTexture;
Texture volumeTexture;
Texture backButtonTexture;
Sprite volumeButtonSprite;
Sprite volumeUpSprite;
Sprite volumeDownSprite;
Sprite volumeSprite;
Sprite backButtonSprite;
public PauseScreen(){ public PauseScreen(){
w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();
float wc = w/2;
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");
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);
volumeButtonSprite.setPosition(-140, 150);
volumeDownSprite.setPosition(volumeButtonSprite.getX() + 230, volumeButtonSprite.getY()+28);
volumeUpSprite.setPosition(volumeButtonSprite.getX() + 340, volumeButtonSprite.getY()+28);
backButtonSprite.setPosition(-140, 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();
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, backButtonSprite.getBoundingRectangle())){
return 5; //proceed Game
}
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