Пример #1
0
 public Animation()
 {
     lastFrameTime = UtilityTimer.getTime();
 }
Пример #2
0
 public void resetLastFrameTime()
 {
     lastFrameTime = UtilityTimer.getTime();
     //System.Console.WriteLine("Reseting last frame time...value is " + lastFrameTime);
 }
Пример #3
0
        //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;
                        }
                    }
                }
            }
        }