# -*- coding: utf-8 -*- class CAnim(object): def __init__(self, aNumFrames, aDelay, aIsLoop = False): self.init(aNumFrames, aDelay, aIsLoop); def init(self, aNumFrames, aDelay, aIsLoop = False, aMinFrame = 0): self.mNumFrames = aNumFrames self.mDelay = aDelay self.mCurrentFrame = aMinFrame self.mTimeFrame = 0 self.mIsLoop = aIsLoop self.mEnded = False self.mFrameHasChanged = False self.mPreviousFrame = 0 self.mMinFrame = aMinFrame def reset(self): self.mCurrentFrame = 0 self.mTimeFrame = 0 self.mFrameHasChanged = False self.mPreviousFrame = 0 def update(self): self.mTimeFrame += 1 if (self.mTimeFrame >= self.mDelay): self.mTimeFrame = 0 self.mCurrentFrame += 1 if (self.mCurrentFrame >= self.mNumFrames): if (self.mIsLoop): self.mCurrentFrame = self.mMinFrame else: self.mCurrentFrame = self.mNumFrames - 1 self.mEnded = True if (self.mPreviousFrame <> self.mCurrentFrame): self.mFrameHasChanged = True else: self.mFrameHasChanged = False self.mPreviousFrame = self.mCurrentFrame def getCurrentFrame(self): return self.mCurrentFrame def isEnded(self): return self.mEnded def frameHasChanged(self): return self.mFrameHasChanged