Android Open Source - RollOverSphere---a-simple-libgdx-game Game Listener






From Project

Back to project page RollOverSphere---a-simple-libgdx-game.

License

The source code is released under:

MIT License

If you think the Android project RollOverSphere---a-simple-libgdx-game 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 com.igorcrevar.rolloverchuck;
//from   ww  w  . j a  va  2 s . c  o  m
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.igorcrevar.rolloverchuck.GameType.BaseGameType;
import com.igorcrevar.rolloverchuck.GameType.Difficulty;
import com.igorcrevar.rolloverchuck.scenes.GameLoadingScene;
import com.igorcrevar.rolloverchuck.scenes.GameScene;
import com.igorcrevar.rolloverchuck.scenes.IntroScene;
import com.igorcrevar.rolloverchuck.scenes.GameMode.ArcadeGameMode;
import com.igorcrevar.rolloverchuck.scenes.GameMode.IGameMode;
import com.igorcrevar.rolloverchuck.scenes.GameMode.StressFreeGameMode;

public class GameListener implements ApplicationListener, ISceneManager {
  // keep to main scenes always in memory
  private IScene introScene;
  private GameScene gameScene;
  
  private GameManager gameManager;
  private IScene currentScene;
  private IActivityRequestHandler requestHandler;
  private ArcadeGameMode arcadeGameMode;
  private IGameMode stressFreeMode;
  private GameType currentGameType = new GameType();
  private long currentScore;
  private GameState currentGameState;
  
  public GameListener(IActivityRequestHandler requestHandler) {
    this.requestHandler = requestHandler;
  }
  
  @Override
  public void create() {
    this.gameManager = new GameManager();
    this.requestHandler.setGameManager(this.gameManager);
    this.setScene(ISceneManager.Type.GameLoadingScene);
    // input processor
    Gdx.input.setCatchBackKey(true);
  }

  @Override
  public void dispose() {
    currentScene.leave(this);
    if (gameScene != null && gameScene != currentScene) {
      gameScene.dispose(this);
    }
    if (introScene != null && introScene != currentScene) {
      introScene.dispose(this);
    }
    if (currentScene != null) {
      currentScene.dispose(this);
    }
    gameManager.dispose();
  }

  @Override
  public void pause() {
  }

  @Override
  public void render() {
    float deltaTime = Gdx.graphics.getDeltaTime();
    if (deltaTime > 0.041f) deltaTime = 0.041f; // make sure world does not update dramatically in one step
    currentScene.update(this, deltaTime);
  }

  @Override
  public void resize(int arg0, int arg1) {
    
  }

  @Override
  public void resume() {
    
  }

  @Override
  public void setScene(ISceneManager.Type scene) {
    if (currentScene != null) {
      currentScene.leave(this);
    }
    
    switch (scene) {
    case GameLoadingScene:
      currentScene = new GameLoadingScene(this);
      break;
    case IntroScene:
      if (introScene == null) {
        introScene = new IntroScene(this);
      }

      currentScene = introScene;
      break;
    case GameScene:
      if (gameScene == null) {
        gameScene = new GameScene(this);
      }
      
      currentScene = gameScene;
      break;
    }
    
    currentScene.init(this);
  }

  @Override
  public IActivityRequestHandler getRequestHandler() {
    return requestHandler;
  }
  
  @Override
  public GameManager getGameManager() {
    return gameManager;
  }

  @Override
  public void finishGame(boolean saveScore) {
    gameManager.stopGameMusic();
    if (saveScore) {
      gameManager.saveScore(currentGameType, currentScore);
    }
    requestHandler.updateLeaderboardAndAchievements();
    // if needed show ad!
    requestHandler.showAd();
  }

  @Override
  public GameType getCurrentGameType() {
    return currentGameType;
  }

  @Override
  public void addToScore(long score) {
    currentScore += score;
  }

  @Override
  public long getCurrentScore() {
    return currentScore;
  }

  @Override
  public void startGame() {
    // just reply last game
    startGame(currentGameType.getBaseType(), currentGameType.getDifficulty());
  }

  @Override
  public void startGame(BaseGameType basGameType, Difficulty difficulty) {    
    // reset score
    currentScore = 0;
    // update current game type
    currentGameType.set(basGameType, difficulty);
    // init game data properties
    getGameManager().getGameData().initForDifficulty(currentGameType);
    // game state is counting
    currentGameState = GameState.COUNTING;
    // set game scene as new scene
    setScene(Type.GameScene);
    // update additional things
    switch (basGameType) {
    case Arcade:
      if (arcadeGameMode == null) {
        arcadeGameMode = new ArcadeGameMode(this);
      }
      arcadeGameMode.init();
      gameScene.setGameMode(arcadeGameMode);
      break;
    case StressFree:
      if (stressFreeMode == null) {
        stressFreeMode = new StressFreeGameMode(this);
      }
      stressFreeMode.init();
      gameScene.setGameMode(stressFreeMode);
      break;
    }
  }

  @Override
  public GameState getGameState() {
    return currentGameState;
  }

  @Override
  public void setGameState(GameState gameState) {
    currentGameState = gameState;
  }

  @Override
  public boolean isGameActive() {
    return currentGameState == GameState.Active;
  }

  @Override
  public boolean isGamePaused() {
    return currentGameState == GameState.PAUSED;
  }

  @Override
  public boolean isGameOver() {
    return currentGameState == GameState.GAMEOVER;
  }
}




Java Source Code List

com.google.example.games.basegameutils.GameHelperUtils.java
com.google.example.games.basegameutils.GameHelper.java
com.igorcrevar.rolloverchuck.DesktopRunner.java
com.igorcrevar.rolloverchuck.GameConsts.java
com.igorcrevar.rolloverchuck.GameData.java
com.igorcrevar.rolloverchuck.GameListener.java
com.igorcrevar.rolloverchuck.GameManager.java
com.igorcrevar.rolloverchuck.GameType.java
com.igorcrevar.rolloverchuck.IActivityRequestHandler.java
com.igorcrevar.rolloverchuck.ISceneManager.java
com.igorcrevar.rolloverchuck.IScene.java
com.igorcrevar.rolloverchuck.mesh.CubeMeshWithNormals.java
com.igorcrevar.rolloverchuck.mesh.CubeMesh.java
com.igorcrevar.rolloverchuck.mesh.FieldMesh.java
com.igorcrevar.rolloverchuck.mesh.IMesh.java
com.igorcrevar.rolloverchuck.mesh.SphereMesh.java
com.igorcrevar.rolloverchuck.objects.BoxObject.java
com.igorcrevar.rolloverchuck.objects.ChuckObject.java
com.igorcrevar.rolloverchuck.objects.ChuckSpriteObject.java
com.igorcrevar.rolloverchuck.objects.EndGameButtonsObject.java
com.igorcrevar.rolloverchuck.objects.FieldObject.java
com.igorcrevar.rolloverchuck.objects.GameButton.java
com.igorcrevar.rolloverchuck.objects.IntroSceneButtonsObject.java
com.igorcrevar.rolloverchuck.objects.MainWallObject.java
com.igorcrevar.rolloverchuck.objects.StarsObject.java
com.igorcrevar.rolloverchuck.objects.TextButton.java
com.igorcrevar.rolloverchuck.objects.TrailObject.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxManager.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxRegionManager.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxRegion.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxTypeFactory.java
com.igorcrevar.rolloverchuck.objects.boxes.IBoxRegion.java
com.igorcrevar.rolloverchuck.objects.boxes.IBoxType.java
com.igorcrevar.rolloverchuck.physics.CollisionSolver.java
com.igorcrevar.rolloverchuck.physics.ICollisionIterationHandler.java
com.igorcrevar.rolloverchuck.physics.SphereMoving.java
com.igorcrevar.rolloverchuck.points.PlayerPoint.java
com.igorcrevar.rolloverchuck.points.PointsManager.java
com.igorcrevar.rolloverchuck.scenes.GameLoadingScene.java
com.igorcrevar.rolloverchuck.scenes.GameScene.java
com.igorcrevar.rolloverchuck.scenes.IntroScene.java
com.igorcrevar.rolloverchuck.scenes.GameMode.ArcadeGameMode.java
com.igorcrevar.rolloverchuck.scenes.GameMode.IGameMode.java
com.igorcrevar.rolloverchuck.scenes.GameMode.StressFreeGameMode.java
com.igorcrevar.rolloverchuck.utils.CollisionHelper.java
com.igorcrevar.rolloverchuck.utils.GameHelper.java
com.igorcrevar.rolloverchuck.utils.IMyFontDrawerFont.java
com.igorcrevar.rolloverchuck.utils.Mathf.java
com.igorcrevar.rolloverchuck.utils.MyFontDrawerBatch.java
com.igorcrevar.rolloverchuck.utils.MyFontDrawerDefaultFont.java
com.igorcrevar.rolloverchuck.utils.MyFontDrawer.java
com.igorcrevar.rolloverchuck.utils.ShaderAssetLoader.java
com.wayilookatgames.rolloverball.MainActivity.java