Android Open Source - LucyTheMoocher Timer






From Project

Back to project page LucyTheMoocher.

License

The source code is released under:

MIT License

If you think the Android project LucyTheMoocher 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.lucythemoocher.util;
/*from   w  ww.j av  a  2  s  .  c  o  m*/

/**
 * Time and time elapsed between two last updates
 * Can be slowed or accelerated by a factor with setFactor
 * Unity is millisecond
 * You have two ways to update a timer:
 * - call addDt(float) to update Dt with a parameter you choose
 * - call update() and addDt will be called with Dt = current system time - system time in last update
 * Don't use both functions since update calls addDt
 */
public class Timer {
  float currentTime_;
  float dt_;
  float factor_;
  long previousSystemTime_;
  float initTime_;
  
  
  /**
   * Constructor
   * @param time in ms
   */
  public Timer(float time) {
    dt_ = 0.0000001f; // avoid null divisions
    currentTime_ = time;
    factor_ = 1.0f; // no factor by default
    previousSystemTime_ = System.currentTimeMillis();
    initTime_ = currentTime_;
  }
  
  /**
   * Reset timer
   */
  public void reset() {
    currentTime_ = 0;
    previousSystemTime_ = System.currentTimeMillis();
    initTime_ = currentTime_;
  }
  
  /**
   * Update dt and the current time with the system clock.
   * Don't call it if you also use addDt().
   */
  public void update() {
    long current = System.currentTimeMillis();
    addDt(current - previousSystemTime_);
    previousSystemTime_ = current;
  }
  
  /**
   * Update time. 
   * Don't call it if you use update().
   * @param dt Time elapsed in ms
   */
  public void addDt(float dt) {
    
    dt_ = dt * factor_;
    currentTime_ += dt_;
  }
  
  /**
   * Getter
   * @return current time
   */
  public float getTime() {
    return currentTime_;
  }
  
  /**
   * Getter
   * @return Time between the two last setTime(float)
   * @see Timer#setTime(float)
   */
  public float getDt() {
    return dt_;
  }
  
  /**
   * Mutator
   * @param factor
   */
  public void setFactor(float factor) {
    factor_ = factor;
  }
  
  /**
   * Update the timer and return the time from it's creation
   * @return time in ms
   */
  public float timeFromCreation() {
    update();
    return currentTime_ - initTime_;
  }
}




Java Source Code List

com.lucythemoocher.LucyTheMoocherActivity.java
com.lucythemoocher.FX.FXManager.java
com.lucythemoocher.FX.FX.java
com.lucythemoocher.Globals.Globals.java
com.lucythemoocher.actors.Actor.java
com.lucythemoocher.actors.ActorsManager.java
com.lucythemoocher.actors.Monster.java
com.lucythemoocher.actors.MonstersManager.java
com.lucythemoocher.actors.PlayerCharacter.java
com.lucythemoocher.actors.Projectile.java
com.lucythemoocher.actors.ProjectilesManager.java
com.lucythemoocher.actors.Tank.java
com.lucythemoocher.actors.TargetCharacter.java
com.lucythemoocher.actors.maincharacter.state.StateAttack.java
com.lucythemoocher.actors.maincharacter.state.StateFalling.java
com.lucythemoocher.actors.maincharacter.state.StateJumping.java
com.lucythemoocher.actors.maincharacter.state.StateNone.java
com.lucythemoocher.actors.maincharacter.state.StateRunning.java
com.lucythemoocher.actors.maincharacter.state.StateWallSliding.java
com.lucythemoocher.actors.maincharacter.state.StateWallWalking.java
com.lucythemoocher.actors.maincharacter.state.State.java
com.lucythemoocher.controls.AIController.java
com.lucythemoocher.controls.ActionController.java
com.lucythemoocher.controls.ButtonListener.java
com.lucythemoocher.controls.Controllable.java
com.lucythemoocher.controls.Controller.java
com.lucythemoocher.controls.GlobalController.java
com.lucythemoocher.controls.KeysListener.java
com.lucythemoocher.controls.TouchListener.java
com.lucythemoocher.events.EventNormal.java
com.lucythemoocher.events.EventSlow.java
com.lucythemoocher.events.Event.java
com.lucythemoocher.game.GameThread.java
com.lucythemoocher.game.Game.java
com.lucythemoocher.game.LevelLoader.java
com.lucythemoocher.graphics.ActorDrawer.java
com.lucythemoocher.graphics.Animation.java
com.lucythemoocher.graphics.Background.java
com.lucythemoocher.graphics.Camera.java
com.lucythemoocher.graphics.Drawable.java
com.lucythemoocher.graphics.Grid.java
com.lucythemoocher.graphics.HUD.java
com.lucythemoocher.graphics.Image.java
com.lucythemoocher.graphics.PersistentEffect.java
com.lucythemoocher.graphics.PersistentPic.java
com.lucythemoocher.graphics.PictureContainer.java
com.lucythemoocher.gui.MenuButtonListener.java
com.lucythemoocher.gui.MenuButtonTouchListener.java
com.lucythemoocher.gui.MenuButton.java
com.lucythemoocher.loops.CreditsLoop.java
com.lucythemoocher.loops.GameOverLoop.java
com.lucythemoocher.loops.InitMenuLoop.java
com.lucythemoocher.loops.LivesMenuLoop.java
com.lucythemoocher.loops.LoopGame.java
com.lucythemoocher.loops.LoopPause.java
com.lucythemoocher.loops.Loop.java
com.lucythemoocher.loops.MasterLoop.java
com.lucythemoocher.physics.Box.java
com.lucythemoocher.physics.Cinematic.java
com.lucythemoocher.physics.Map.java
com.lucythemoocher.sounds.SoundManager.java
com.lucythemoocher.sounds.SoundsState.java
com.lucythemoocher.sounds.StateLevel1.java
com.lucythemoocher.sounds.StateLevel2.java
com.lucythemoocher.sounds.StateLevel3.java
com.lucythemoocher.sounds.StateNormal.java
com.lucythemoocher.util.Direction.java
com.lucythemoocher.util.MathUtil.java
com.lucythemoocher.util.Resources.java
com.lucythemoocher.util.Timer.java