コード例 #1
0
  @Override
  public void run() {
    long ticksPS = 1000 / FPS;
    long startTime;
    long sleepTime;

    while (running) {
      mGameCanvas = null;
      startTime = System.currentTimeMillis();

      try {
        mGameCanvas = mGameView.getHolder().lockCanvas();
        synchronized (mGameView.getHolder()) {
          mGameView.update();
          if (mGameCanvas != null) mGameView.draw(mGameCanvas);
        }
      } finally {
        if (mGameCanvas != null) {
          mGameView.getHolder().unlockCanvasAndPost(mGameCanvas);
        }
      }
      sleepTime = ticksPS - (System.currentTimeMillis() - startTime);
      try {
        if (sleepTime > 0) sleep(sleepTime);
        else sleep(10);
      } catch (Exception e) {
      }
    }
  }
コード例 #2
0
  @Override
  public void run() {

    long tickPS = 1000 / FPS;
    long startTime;
    long sleepTime;

    while (isRunning) {
      Canvas c = null;
      startTime = System.currentTimeMillis();
      try {
        c = gameView.getHolder().lockCanvas();
        synchronized (gameView.getHolder()) {
          gameView.draw(c);
        }
      } finally {
        if (c != null) {
          gameView.getHolder().unlockCanvasAndPost(c);
        }
      }
      sleepTime = tickPS - (System.currentTimeMillis() - startTime);
      try {
        if (sleepTime > 0) sleep(sleepTime);
        else sleep(10);

      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }