Android Open Source - CatchDROP Settings Screen






From Project

Back to project page CatchDROP.

License

The source code is released under:

GNU General Public License

If you think the Android project CatchDROP listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package projects.nerdybuzz.catchdrop;
/*  w ww . java2  s  .  co  m*/
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Pixmap.Format;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle;
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;

public class SettingsScreen implements Screen {
  final CDGame game;
  private OrthographicCamera camera;
  private Stage stage;
  private Skin skin;
  
  private BitmapFont headerFont;
  private BitmapFont btnFont;
  
  private TextButton autoPauseSetting;
  private TextButton dragSetting;
  
  private Table table;
  private Texture pixtexture;
  private Pixmap pixmap;
  
  private Screen backScreen;
  private boolean shown = false;
  private TextButton gameModeSetting;
  
  private int gmIndex = 0;
  private int count;
  
  public SettingsScreen(final CDGame game) {
    this.game = game;
    this.backScreen = game.mMScr;
    init(game);
  }
  
  public SettingsScreen(final CDGame game, Screen backScreen) {
    this.game = game;
    this.backScreen = backScreen;
    init(game);
  }
  
  public void init(final CDGame game) {
    camera = game.camera;
    stage = new Stage();
    Gdx.input.setInputProcessor(stage);
    
    headerFont = game.assManager.get("heading.ttf", BitmapFont.class);
    btnFont = game.assManager.get("size20.ttf", BitmapFont.class);
    
    skin = new Skin();
    pixmap = new Pixmap(1, 1, Format.RGBA8888);
    pixmap.setColor(Color.WHITE);
    pixmap.fill();
    pixtexture = new Texture(pixmap);
    skin.add("white", pixtexture);
    skin.add("heading", headerFont);
    skin.add("normalfont", btnFont);
    skin.add("btnFontColor", Color.BLACK);
    skin.add("default", new BitmapFont());
    
    LabelStyle lblStyle = new LabelStyle();
    lblStyle.font = skin.getFont("heading");
    skin.add("default", lblStyle);
    
    TextButtonStyle btnStyle = new TextButtonStyle();
    btnStyle.up = skin.newDrawable("white", Color.GRAY);
    btnStyle.down = skin.newDrawable("white", Color.DARK_GRAY);
    btnStyle.over = skin.newDrawable("white", Color.LIGHT_GRAY);
    btnStyle.checked = skin.newDrawable("white", Color.WHITE);
    btnStyle.font = skin.getFont("normalfont");
    btnStyle.fontColor = skin.getColor("btnFontColor");
    skin.add("default", btnStyle);
    
    Label scrTitle = new Label("Game Settings", skin);
    gameModeSetting = new TextButton("Game Mode: "+game.gameModeStr,skin);
    autoPauseSetting = new TextButton("Auto-Pause: "+game.autoPauseStr,skin);
    dragSetting = new TextButton("Dragging: "+game.dragStr,skin);
    if(game.autoPause) autoPauseSetting.setChecked(true); else autoPauseSetting.setChecked(false);
    if(game.noDrag) dragSetting.setChecked(false); else dragSetting.setChecked(true);
    TextButton showCHSBtn = new TextButton("Classic Highscores", skin);
    TextButton showZHSBtn = new TextButton("Zen Highscores", skin);
    TextButton backBtn = new TextButton("Back", skin);
    
    gameModeSetting.addListener(new ChangeListener() {
      @Override
      public void changed(ChangeEvent event, Actor actor) {
        if(shown) {
          /*
          System.out.println("Setting Clicked!");
          GameScreen[] gameModes = {
              new ZenGame(game),
              new ClassicGame(game)
          };
          
          if(gmIndex>gameModes.length-1) {
            gmIndex = 0;
          }
          game.gScr = gameModes[gmIndex];
          gmIndex++;
          
          System.out.println("Game mode index: "+gmIndex);
          System.out.println("Game mode: "+game.gameModeStr);
          System.out.println("Game mode: "+game.gScr);
          // */
        }
      }
    });
    
    autoPauseSetting.addListener(new ChangeListener() {
      @Override
      public void changed(ChangeEvent event, Actor actor) {
        if(shown) {
          System.out.println("Setting Clicked!");
          if(game.autoPause) {
            game.autoPause = false;
          } else {
            game.autoPause = true;
          }
        }
      }
    });
    
    dragSetting.addListener(new ChangeListener() {
      @Override
      public void changed(ChangeEvent event, Actor actor) {
        if(shown) {
          System.out.println("Setting Clicked!");
          if(game.noDrag) {
            game.noDrag = false;
          } else {
            game.noDrag = true;
          }
        }
      }
    });
    
    backBtn.addListener(new ChangeListener() {
      @Override
      public void changed(ChangeEvent event, Actor actor) {
        if(shown) game.setScreen(backScreen);
      }
    });
    
    showCHSBtn.addListener(new ChangeListener() {
      @Override
      public void changed(ChangeEvent event, Actor actor) {
        if(shown) CDGame.googleServices.showClassicScores();
      }
    });
    
    showZHSBtn.addListener(new ChangeListener() {
      @Override
      public void changed(ChangeEvent event, Actor actor) {
        if(shown) CDGame.googleServices.showZenScores();
      }
    });
    
    table = new Table();
    table.add(scrTitle).pad(10);
    table.row();
    //table.add(gameModeSetting).width(300).height(50).pad(5);
    table.row();
    if(game.usingDesktop) {
      table.add(autoPauseSetting).width(300).height(50).pad(5);
      table.row();
      table.add(dragSetting).width(300).height(50).pad(5);
      table.row();
    }
    table.add(showCHSBtn).width(300).height(50).pad(5);
    table.row();
    table.add(showZHSBtn).width(300).height(50).pad(5);
    table.row();
    table.add(backBtn).width(300).height(50).pad(5);
    table.setPosition(game.GAME_WIDTH/2, game.GAME_HEIGHT/2);
    stage.addActor(table);
    
    game.initedSettings = true;
  }

  @Override
  public void render(float delta) {
    if(shown) {
      Gdx.gl.glClearColor(0, 0, 0.1f, 1);
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      
      stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
      stage.draw();
      
      update(delta);
    }
  }
  
  public void update(float delta) {
    gameModeSetting.setText("Game Mode: "+game.gameModeStr);
    autoPauseSetting.setText("Auto-Pause: "+game.autoPauseStr);
    dragSetting.setText("Dragging: "+game.dragStr);
    
    if(game.autoPause) autoPauseSetting.setChecked(true); else autoPauseSetting.setChecked(false);
    if(game.noDrag) dragSetting.setChecked(false); else dragSetting.setChecked(true);
    
    
    if(Gdx.input.isKeyJustPressed(Keys.P)) {
      toggleAutoPause();
    }
    
    if(Gdx.input.isKeyJustPressed(Keys.D)) {
      toggleDragging();
    }
    // */
    
    /*
    if(shown) {
      System.out.println("Update! #"+count);
      count++;
    }
    // */
    
    camera.update();
  }
  
  public void toggleAutoPause() {
    if(game.autoPause) autoPauseSetting.setChecked(false); else autoPauseSetting.setChecked(true);
  }
  
  public void toggleDragging() {
    if(game.noDrag) dragSetting.setChecked(false); else dragSetting.setChecked(true);
  }

  @Override
  public void resize(int width, int height) {
    stage.getViewport().update(width, height, true);
  }

  @Override
  public void show() {
    shown = true;
    System.out.println("Settings Shown.");
  }

  @Override
  public void hide() {
    shown = false;
    System.out.println("Settings Hidden.");
  }

  @Override
  public void pause() {}

  @Override
  public void resume() {}

  @Override
  public void dispose() {
    skin.dispose();
    stage.dispose();
  }

}




Java Source Code List

android.UnusedStub.java
com.google.example.games.basegameutils.BaseGameActivity.java
com.google.example.games.basegameutils.BaseGameUtils.java
com.google.example.games.basegameutils.GameHelperUtils.java
com.google.example.games.basegameutils.GameHelper.java
projects.nerdybuzz.catchdrop.BurntToastObj.java
projects.nerdybuzz.catchdrop.CDGame.java
projects.nerdybuzz.catchdrop.ClassicGame.java
projects.nerdybuzz.catchdrop.EndScreen.java
projects.nerdybuzz.catchdrop.FallingAct.java
projects.nerdybuzz.catchdrop.FallingRect.java
projects.nerdybuzz.catchdrop.GameScreen.java
projects.nerdybuzz.catchdrop.KeySequence.java
projects.nerdybuzz.catchdrop.MainMenuScreen.java
projects.nerdybuzz.catchdrop.PoisonDrop.java
projects.nerdybuzz.catchdrop.SettingsScreen.java
projects.nerdybuzz.catchdrop.TimePowerUp.java
projects.nerdybuzz.catchdrop.ZenGame.java
projects.nerdybuzz.catchdrop.android.AndroidLauncher.java
projects.nerdybuzz.catchdrop.client.HtmlLauncher.java
projects.nerdybuzz.catchdrop.desktop.AppletLauncher.java
projects.nerdybuzz.catchdrop.desktop.DesktopLauncher.java
projects.nerdybuzz.catchdrop.googleservices.DesktopGoogleServices.java
projects.nerdybuzz.catchdrop.googleservices.IGoogleServices.java