master
GammelJAN 6 years ago
parent f8db6b1e57
commit fd831406bb

@ -27,6 +27,8 @@ import com.dungeoncrawler.model.ItemContainer;
import java.util.ArrayList;
public class Controller extends ApplicationAdapter implements InputProcessor{
SpriteBatch batch;
Dungeon d;
DungeonGenerator dg;
@ -64,10 +66,15 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
Timer entityMovement;
boolean isPaused;
@Override
public void create(){
isPaused = false;
volume = 0.05f;
roomX = 10;
@ -210,6 +217,8 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
}
},0, 0.03f);
}
@ -228,11 +237,13 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
if(cs != null){
cs.render(batch);
}
if(ps != null){
ps.render(batch, volume);
}
//PASSIERT IN GAMESCREEN
if(gs != null){
if(gs != null && mm == null && isPaused == false){
if(mm == null){
// Position des Players, etc. werden aktualisiert
updateObjects(level, roomPosX, roomPosY);
@ -251,7 +262,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
gs.render(batch, d.getPlayer(), d.getCurrentEntities(), tileX, tileY, level, roomPosX, roomPosY);
hc.updateHud(batch, d.getPlayer());
d.getPlayer().updateItems();
}
}
}
@ -480,6 +490,17 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
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;
}
@ -565,6 +586,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
cs = null;
mm.appear();
return true;
case 5:
resume();
return true;
case 9:
if(volume > 0f){
@ -609,6 +634,9 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
if(cs != null){
return cs.click(x, y);
}
if(gs != null && isPaused == true){
}
return -1;
}
@ -643,4 +671,19 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
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;
}
}

@ -213,12 +213,12 @@ public class GameScreen {
//MAP
tmr.setView(camera);
tmr.render();
camera.zoom = 700f; // Standart 700f
camera.update();
batch.setProjectionMatrix(camera.combined);
updateEntitySprites(e);
//BATCH
@ -419,5 +419,16 @@ public class GameScreen {
public Map getM() {
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.Input;
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 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(){
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 PauseScreen() {
}
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