Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devtools/CompleteTestKit
diff options
context:
space:
mode:
authordavesilver <nibor123@gmail.com>2010-07-27 14:00:52 (GMT)
committer davesilver <nibor123@gmail.com>2010-07-27 14:00:52 (GMT)
commit98bd983f41e4cbcb077cc87040f77f31b70cefb2 (patch)
tree0194e64f5e9e440505a1fe53d582068b80fab5ea /devtools/CompleteTestKit
parent4bae334319836a3a88316ed4a399bb1281d45218 (diff)
Editing Sprite tests
Diffstat (limited to 'devtools/CompleteTestKit')
-rw-r--r--devtools/CompleteTestKit/DynamicDrawableObject2.py110
-rw-r--r--devtools/CompleteTestKit/NewScene.py16
-rw-r--r--devtools/CompleteTestKit/dirtyTest2.py27
-rw-r--r--devtools/CompleteTestKit/text.txt1
4 files changed, 143 insertions, 11 deletions
diff --git a/devtools/CompleteTestKit/DynamicDrawableObject2.py b/devtools/CompleteTestKit/DynamicDrawableObject2.py
new file mode 100644
index 0000000..1fe1e3b
--- /dev/null
+++ b/devtools/CompleteTestKit/DynamicDrawableObject2.py
@@ -0,0 +1,110 @@
+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:
+#
+# self._frame += timePassed/self._delay
+# 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 = timePassed%self._delay
+# self._last_update = timePassed
+
+ def updateCurrentAnimation(self, right, bottom):
+
+ # If we're at the top or bottom of the screen, switch directions.
+ if (self.yPos + self.ySize) >= bottom or self.yPos < 0: self.ySpeed = self.ySpeed * -1
+ if (self.yPos + self.ySize) >= bottom and self.ySpeed > 0: self.ySpeed = self.ySpeed * -1
+ if self.yPos < 0 and self.ySpeed < 0: self.ySpeed = self.ySpeed * -1
+
+ # If we're at the right or left of the screen, switch directions.
+ if (self.xPos + self.xSize) >= right or self.xPos < 0: self.xSpeed = self.xSpeed * -1
+ if (self.xPos + self.xSize) >= right and self.xSpeed > 0: self.xSpeed = self.xSpeed * -1
+ if self.xPos < 0 and self.xSpeed < 0: self.xSpeed = self.xSpeed * -1
+
+ self.move()
+
+ if self._frame < len(self._images) - 1:
+ self._frame += 1
+ else:
+ self._frame = 0
+
+ self.image = self._images[self._frame]
+
+ def update(self, t):
+
+ cnt = 0
+ while cnt < len(animations):
+
+ if animations[cnt] == self._current_anim:
+
+ timePassed = t + self._last_update
+ if timePassed > self._delay:
+
+ if self._frame < self.animations.get(self._current_anim)[0] or self._frame > self.animations.get(self._current_anim)[1]: #checking if I am in the animation and putting me there if I am not
+
+ self._frame = self.animations.get(self._current_anim)[0]
+
+ self._frame += timePassed/self._delay
+ while self._frame >= self.animations.get(self._current_anim)[1]:
+
+ framesPast = self._frame - self.animations.get(self._current_anim)[1]
+ self._frame = framesPast - 1 + self.animations.get(self._current_anim)[0]
+
+ self.image = self._images[self._frame]
+ self._last_update = timePassed%self._delay
+ self._last_update = timePassed
+
+ cnt = len(animations)
+
+ cnt += 1
+
+ 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 nextCurrentAnimFrame(self):
+
+ cnt = 0
+ while cnt < len(animations):
+
+ if animations[cnt] == self._current_anim:
+
+ if self._frame < self.animations[self._current_anim][0] or self._frame > self.animations[self._current_anim][1]:
+
+ self._frame = self.animations[self._current_anim][0]
+ else:
+ self._frame += 1
+
+ if self._frame > self.animations[self._current_anim][1]:
+
+ framesPast = self._frame - self.animations[self._current_anim][1]
+ self._frame = framesPast - 1 + self.animations[self._current_anim][0]
+
+ self.image = self._images[self._frame]
+
+ cnt = len(anmiations)
+
+ cnt += 1
diff --git a/devtools/CompleteTestKit/NewScene.py b/devtools/CompleteTestKit/NewScene.py
index 12a5501..9727177 100644
--- a/devtools/CompleteTestKit/NewScene.py
+++ b/devtools/CompleteTestKit/NewScene.py
@@ -150,6 +150,18 @@ class Scene(pygame.sprite.RenderUpdates):
self.calcSize()
self.setPosition()
- #def updateAnimations(self, t):
+ def updateAnimations(self, t):
- #def nextFrame(self):
+ cnt = 0
+ while cnt < len(self._spritelist):
+
+ self._spritelist[cnt][0].updateCurrentAnimation(t)
+ cnt += 1
+
+ def nextFrame(self):
+
+ cnt = 0
+ while cnt < len(self._spritelist):
+
+ self._spritelist[cnt][0].nextFrame()
+ cnt += 1
diff --git a/devtools/CompleteTestKit/dirtyTest2.py b/devtools/CompleteTestKit/dirtyTest2.py
index 2aaf992..e400277 100644
--- a/devtools/CompleteTestKit/dirtyTest2.py
+++ b/devtools/CompleteTestKit/dirtyTest2.py
@@ -5,7 +5,7 @@ from boxes import BouncingBox
from time import time
from NewScene import Scene
from DrawableObject import DrawableObject
-from DynamicDrawableObject import DynamicDrawableObject
+from DynamicDrawableObject2 import DynamicDrawableObject
pygame.init()
FRAME=2500
@@ -54,11 +54,22 @@ frameList2 = [
for aTrial in range(maxTrial):
start = time()
- group1=Scene(DynamicDrawableObject(frameList2,"",1,0,0,1,1))
- group1.addObjects([DynamicDrawableObject(frameList2,"",1,40,40,1,1)])
- group1.addObjects([DynamicDrawableObject(frameList2,"",1,80,80,1,1)])
- group1.addObjects([DynamicDrawableObject(frameList2,"",1,120,120,1,1)])
- group1.addObjects([DynamicDrawableObject(frameList2,"",1,160,160,1,1)])
+ d = DynamicDrawableObject(frameList2,"text.txt",5,0,0,1,1)
+ d.goToAnim("anim1")
+ d2 = DynamicDrawableObject(frameList2,"text.txt",5,40,40,1,1)
+ d2.goToAnim("anim1")
+ d3 = DynamicDrawableObject(frameList2,"text.txt",5,80,80,1,1)
+ d3.goToAnim("anim1")
+ d4 = DynamicDrawableObject(frameList2,"text.txt",5,120,120,1,1)
+ d4.goToAnim("anim1")
+ d5 = DynamicDrawableObject(frameList2,"text.txt",5,160,160,1,1)
+ d5.goToAnim("anim1")
+
+ group1=Scene(d)
+ group1.addObjects(d2)
+ group1.addObjects(d3)
+ group1.addObjects(d4)
+ group1.addObjects(d5)
groups=[group1]
print (time()-start) ,
print " -- Time to load"
@@ -69,9 +80,7 @@ for aTrial in range(maxTrial):
dirtyList=[]
for image in range(numImages):
#move / collision detection
- if frame == 200:
- groups[image].scaleScene(400,400)
- if frame % 4 == 0: groups[image].update(screenWidth,screenHeight)
+ if frame % 4 == 0: groups[image].update(time())
#individually blit each image group - add to list for update
dirtyList.extend(groups[image].draw(screen))
diff --git a/devtools/CompleteTestKit/text.txt b/devtools/CompleteTestKit/text.txt
new file mode 100644
index 0000000..8c6d6d3
--- /dev/null
+++ b/devtools/CompleteTestKit/text.txt
@@ -0,0 +1 @@
+anim1,0,8 \ No newline at end of file