public Animation() { lastFrameTime = UtilityTimer.getTime(); }
public void resetLastFrameTime() { lastFrameTime = UtilityTimer.getTime(); //System.Console.WriteLine("Reseting last frame time...value is " + lastFrameTime); }
//update method (called to update animation frame. dependent upon time //retrieved from UtilityTimer class, will update accordingly (skip frames if necessary) //or wait to draw frames. updates by increasing texture index, wrapping around if //necessary public void updateAnimation() { int currentTime = UtilityTimer.getTime(); int timeElapsed = UtilityTimer.getTime() - lastFrameTime; //System.Console.WriteLine("Last Frame Time" + lastFrameTime); //System.Console.WriteLine("Current Time" + currentTime); //System.Console.WriteLine("Time Elapsed" + timeElapsed); //System.Console.WriteLine("Current Frame" + frameCounter); //System.Console.WriteLine("Animation ID" + animationId); if (timeElapsed >= frameRate) { lastFrameTime = UtilityTimer.getTime(); //enough time has elapsed to move to next frame //check to see if less than two frames have passed if (timeElapsed < (2 * frameRate)) { //System.Console.WriteLine("Not performing frame skip"); //check to make sure not at max frames if (frameCounter < maxFrames) { //update frame by 1 frameCounter++; } //if at max frames... else { //check for wrap around if (cycleAnimation == true) { resetFrameCounter(); } } } //more than one frame has passed else { int frameSkip = (int)(timeElapsed / frameRate); //System.Console.WriteLine("Performing frame skip"); // check to make sure not at max frames if ((frameCounter + frameSkip) < maxFrames) { //System.Console.WriteLine("Adding frame skip"); frameCounter += frameSkip; } //else if at max frames else { //check for wrap around if (cycleAnimation == true && frameCounter >= maxFrames) { resetFrameCounter(); } //otherwise set to last frame else { frameCounter = maxFrames; } } } } }