Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/api/Anim.py
diff options
context:
space:
mode:
authorFernando Sansberro <sansberro@batovi.com>2012-04-30 15:20:47 (GMT)
committer Fernando Sansberro <sansberro@batovi.com>2012-04-30 15:20:47 (GMT)
commitf5445986c75c16cc691d9eaefe263e8b06831d36 (patch)
treee2dae01f5f69fa0dfca1b8101a9bde7fd7c9aac1 /src/api/Anim.py
parent224a2947bbdbaba19900b463a173acee4351b3de (diff)
Hall state & minor changes.
Diffstat (limited to 'src/api/Anim.py')
-rw-r--r--src/api/Anim.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/api/Anim.py b/src/api/Anim.py
new file mode 100644
index 0000000..db3bea8
--- /dev/null
+++ b/src/api/Anim.py
@@ -0,0 +1,62 @@
+class CAnim(object):
+
+ mNumFrames = 0
+ mDelay = 0
+ mCurrentFrame = 0
+ mTimeFrame = 0
+ mIsLoop = False
+
+ # Flag to indicate it the animation has ended.
+ mEnded = False
+
+ # Indicates if frame has changed since the previous update().
+ mFrameHasChanged = False
+
+ # Used to calculate if the previous frame is the same as the current frame.
+ mPreviousFrame = 0
+
+ def __init__(self, aNumFrames, aDelay, aIsLoop = False):
+ self.init(aNumFrames, aDelay, aIsLoop);
+
+ def init(self, aNumFrames, aDelay, aIsLoop = False):
+ self.mNumFrames = aNumFrames
+ self.mDelay = aDelay
+ self.mCurrentFrame = 0
+ self.mTimeFrame = 0
+ self.mIsLoop = aIsLoop
+ self.mEnded = False
+ self.mFrameHasChanged = False
+ self.mPreviousFrame = 0
+
+ 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 = 0
+ 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 \ No newline at end of file