GameManager.java :  » Game » solarzen-android » com » epazzzsoftware » andgame » Android Open Source

Android Open Source » Game » solarzen android 
solarzen android » com » epazzzsoftware » andgame » GameManager.java
/**
 * GameManager.java 
 * GameManager
 *
 * Created by Kolesin Andrey on 24.06.2009
 * Copyright 2009 Epazzz Software. All rights reserved.
 */
package com.epazzzsoftware.andgame;


import android.content.Context;
import android.graphics.Canvas;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;

/**
 * @author s4relok
 *
 */
public class GameManager extends Thread {
  
  public GameManager(SurfaceHolder surfaceHolder, Context context, long delay) {
    mSurfaceHolder = surfaceHolder;
    mDelay = delay;
    

  }
  
  private static boolean isSoundOn = true;
  
  public static boolean isSoundOn() {
    return isSoundOn;
  }

  public static void setSoundSettings(boolean isOn){
    isSoundOn = isOn;
  }
  
  public void setSurfaceHolder(SurfaceHolder surfaceHolder){
    mSurfaceHolder = surfaceHolder;
  }
  
  public void dispose(){
    
  }
  
  public void setLevel(int levelNumber){
    mLevel = levelNumber;
  }
  
  @Override
  public void run() {  
    Canvas canvas = null;
    
    
      
    while (isRunning) {
      try {
        canvas = mSurfaceHolder.lockCanvas();
        synchronized (mSurfaceHolder) {
          mGameState.redrawCanvas(canvas);
          sleep(mDelay);
        }
      } catch (Exception e) {
        System.out.println(e.toString());
      } finally {
        if (canvas != null) {
          mSurfaceHolder.unlockCanvasAndPost(canvas);
        }
      }
    }

  }
  
  public boolean doKeyDown(int keyCode, KeyEvent msg) {
    synchronized (mSurfaceHolder) {

      return mGameState.doKeyDown(keyCode, msg);
    }
  }

  public boolean doTouchEvent(android.view.MotionEvent event) {

    return mGameState.doTouchEvent(event);
  }
  
  /**
   * @return the isRunning
   */
  public boolean isRunning() {
    return isRunning;
  }
  
  public void nextLevel(){ 
      mLevel++;
  }
  
  /**
   * @param isRunning the isRunning to set
   */
  public void setRunning(boolean isRunning) {
    this.isRunning = isRunning;
  }


  public void setSoundOn(boolean isOn){
    
    setSoundSettings(isOn);
    
    if(isOn){
      mSoundState = mSoundOnState;
      Log.w(S.TAG, "Sound state is on");
    } else {
      mSoundState = mSoundOffState;
      Log.w(S.TAG, "Sound state is off");
    }
  }
  
  public void setGameState(GameState gs){
    mGameState = gs;
  }


  public void setFirstLevel(){
    mLevel = S.level.lvl1;
  }

  public void setDifficulty(int mDifficulty) {
    this.mDifficulty = mDifficulty;
  }

  public SoundState getSoundState() {
    return mSoundState;
  }

  public int getLevel(){
    return mLevel;
  }

  public int getDifficulty() {
    return mDifficulty;
  }

  private boolean isRunning = false;
  
  /** Surface when we will draw */
  private SurfaceHolder mSurfaceHolder;
  
  protected SoundState mSoundState;
  protected SoundState mSoundOnState;// = new SoundOnState();
  protected SoundState mSoundOffState = new SoundOff();

  private GameState mGameState;
  private int mDifficulty = S.difficulty.normal;
  protected int mLevel = S.level.lvl1;
  private long mDelay;
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.