Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/DrawableObjectTests/DynamicDrawableObject.py
diff options
context:
space:
mode:
authorolpc <olpc@xo-10-A7-93.localdomain>2010-07-13 15:15:38 (GMT)
committer olpc <olpc@xo-10-A7-93.localdomain>2010-07-13 15:15:38 (GMT)
commit7190dc1e75e8072f4d798230de78407983da1085 (patch)
tree1bcc1deb8f0036a206db61058557d2f4adaab76c /DrawableObjectTests/DynamicDrawableObject.py
parent64268c8dadef7166aa8321fa79b57df569f69cb4 (diff)
Adding the current versions of DrawableObject and its sub classes
Diffstat (limited to 'DrawableObjectTests/DynamicDrawableObject.py')
-rwxr-xr-xDrawableObjectTests/DynamicDrawableObject.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/DrawableObjectTests/DynamicDrawableObject.py b/DrawableObjectTests/DynamicDrawableObject.py
new file mode 100755
index 0000000..351aea1
--- /dev/null
+++ b/DrawableObjectTests/DynamicDrawableObject.py
@@ -0,0 +1,70 @@
+import pygame
+from DrawableObject import DrawableObject
+
+class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite):
+
+ def __init__(self,images,textfileName,fps = 10, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
+
+ DrawableObject.__init__(self, images, textfileName, fps, x, y, xVelocity, yVelocity)
+
+ def addImages(self, images):
+
+ self._images.extend(images)
+
+ def update(self, t):
+
+ timePassed = t - self._last_update
+ if timePassed > self._delay:
+
+ frameChanges = int(timePassed/self._delay)
+ self._frame += frameChanges
+ while self._frame >= len(self._images):
+
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast - 1
+
+ self.image = self._images[self._frame]
+ self._last_update = t
+
+ def updateAnimation(self, t, animName):
+
+ timePassed = t - self._last_update
+ if timePassed > self._delay:
+
+ if self._frame < self.animations.get(animName)[0] or self._frame > self.animations.get(animName)[1]:
+
+ self._frame = self.animations.get(animName)[0]
+
+ frameChanges = int(timePassed/self._delay)
+ self._frame += frameChanges
+ while self._frame >= self.animations.get(animName)[1]:
+
+ framesPast = self._frame - self.animations.get(animName)[1]
+ self._frame = framesPast - 1 + self.animations.get(animName)[0]
+
+ self.image = self._images[self._frame]
+ self._last_update = t
+
+ def nextFrame(self):
+
+ self._frame += 1
+ if self._frame >= len(self._images):
+
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast
+
+ self.image = self._images[self._frame]
+
+ def nextAnimFrame(self, animName):
+
+ if self._frame < self.animations[animName][0] or self._frame > self.animations[animName][1]:
+
+ self._frame = self.animations[animName][0]
+
+ self._frame += 1
+ if self._frame > self.animations[animName][1]:
+
+ framesPast = self._frame - self.animations[animName][1]
+ self._frame = framesPast - 1 + self.animations[animName][0]
+
+ self.image = self._images[self._frame]