Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devtools
diff options
context:
space:
mode:
authorslm <jtmengel@gmail.com>2010-08-04 20:05:54 (GMT)
committer slm <jtmengel@gmail.com>2010-08-04 20:05:54 (GMT)
commitda21032452884b1076c770c7643f936395beac71 (patch)
tree6638697407cff6d2b21604a58aa9b91a0e57fdb1 /devtools
parent8e9e99d755802518394bff3ab91ff0341b57c9ec (diff)
Making changes to the test now located in the directory in devtools Dave's Test. Documentation and fully functional demonstration needed.
Diffstat (limited to 'devtools')
-rw-r--r--devtools/CompleteTestKit/DrawableFontObject.py17
-rwxr-xr-xdevtools/CompleteTestKit/DrawableObject.py157
-rw-r--r--devtools/CompleteTestKit/DynamicDrawableObject - depreciated.py110
-rwxr-xr-xdevtools/CompleteTestKit/DynamicDrawableObject.py90
-rwxr-xr-xdevtools/CompleteTestKit/FinalDirtyTest.py129
-rw-r--r--devtools/CompleteTestKit/FontDirtyTest.py64
-rw-r--r--devtools/CompleteTestKit/OriginalScene - Depreciated.py167
-rw-r--r--devtools/CompleteTestKit/Room.gifbin34293 -> 0 bytes
-rw-r--r--devtools/CompleteTestKit/Scene.py174
-rw-r--r--devtools/CompleteTestKit/animInfo.txt1
-rw-r--r--devtools/CompleteTestKit/boxes.py35
-rw-r--r--devtools/CompleteTestKit/reworkFinalDirtyTest.py75
-rwxr-xr-x[-rw-r--r--]devtools/Dave's Test Kit/DODirtyTest.py65
-rw-r--r--devtools/Dave's Test Kit/DynamicDrawableObject.py12
-rw-r--r--devtools/Dave's Test Kit/Scene.py191
15 files changed, 138 insertions, 1149 deletions
diff --git a/devtools/CompleteTestKit/DrawableFontObject.py b/devtools/CompleteTestKit/DrawableFontObject.py
deleted file mode 100644
index 6fce74b..0000000
--- a/devtools/CompleteTestKit/DrawableFontObject.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import pygame
-from DrawableObject import DrawableObject
-
-class DrawableFontObject(DrawableObject, pygame.sprite.Sprite):
-
- def __init__(self,text,font,fps = 10, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
-
- self.font = font
- self.textImage = font.render(text, 1, (255,255,255))
-
- DrawableObject.__init__(self, [self.textImage], '', fps, x, y, xVelocity, yVelocity)
-
- def changeText(self, newText):
-
- self._images[0] = self.font.render(newText, True, (111,22,45))
- self.image = self._images[0]
-
diff --git a/devtools/CompleteTestKit/DrawableObject.py b/devtools/CompleteTestKit/DrawableObject.py
deleted file mode 100755
index 9b55ceb..0000000
--- a/devtools/CompleteTestKit/DrawableObject.py
+++ /dev/null
@@ -1,157 +0,0 @@
-import pygame
-
-class DrawableObject(pygame.sprite.Sprite):
-
- def __init__(self,images,textfileName,fps = 2, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
- pygame.sprite.Sprite.__init__(self)
- cnt = 0
-
- #self._originals = images
- #self._images = images
- self._images = []
- self._origImages = []
- while cnt < len(images):
- self._images.append(images[cnt].convert())
- self._origImages.append(images[cnt].convert())
- cnt += 1
- self.image = self._images[0]
- self._start = pygame.time.get_ticks()
- self._delay = 1000 / fps
- self._last_update = 0
- self._frame = 0
- self.animations = {}
- self._current_anim = ""
- self.xPos = x
- self.yPos = y
- self.xSpeed = xVelocity
- self.ySpeed = yVelocity
- self.myAngle = 0
- self.xSize = 40
- self.ySize = 40
-
- if textfileName != '':
-
- f = open(textfileName, 'r')
- currentLine = f.readline()
- while currentLine != '':
-
- animValues = currentLine.split(",")
- self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
- currentLine = f.readline()
-
-
- def addImages(self, images):
-
- self._images.extend(images)
- #self._originals.extend(images)
-
- def goToAnim(self, animName):
-
- cnt = 0
- while cnt < len(animations):
-
- if animations[cnt] == animName:
- self._current_anim = animName
- self._frame = self.animations[animName][0]
- self.image = self._images[self._frame]
- cnt = len(animations)
- cnt += 1
-
- def move(self):
-
- self.xPos += self.xSpeed
- self.yPos += self.ySpeed
-
- self.image[0].get_rect().move(self.xPos,self.yPos)
-
- def nudge(self, xNudge = 0, yNudge = 0):
-
- self.xPos += xNudge
- self.yPos += yNudge
-
- self.image[0].get_rect().move(self.xPos,self.yPos)
-
- def scale(self, newXSize = None, newYSize = None):
-
- if newXSize != None: self.xSize = newXSize
- if newYSize != None: self.ySize = newYSize
-
- cnt = 0
- while cnt < len(self._images):
-
- self._origImages[cnt] = pygame.transform.scale(self._origImages[cnt], (self.xSize, self.ySize))
- self._images[cnt] = self._origImages[cnt]
- cnt += 1
-
- def getXSize(self):
-
- return self.xSize
-
- def getYSize(self):
-
- return self.ySize
-
- def rotate(self,angle):
-
- cnt = 0
-
- self.myAngle += angle
- while cnt < len(self._images):
-
- self._images[cnt] = pygame.transform.rotate(self._origImages[cnt], self.myAngle)
- cnt += 1
-
- def getRotation(self):
-
- return self.myAngle
-
- def setPosition(self, x = None, y = None):
-
- if x != None and x >= 0: self.xPos = x
- if y != None and y >= 0: self.yPos = y
-
- def getXPos(self):
-
- return self.xPos
-
- def getYPos(self):
-
- return self.yPos
-
- def setSpeed(self, xVelocity = None, yVelocity = None):
-
- if xVelocity != None: self.xSpeed = xVelocity
- if yVelocity != None: self.ySpeed = yVelocity
-
- def getXSpeed(self):
-
- return self.xSpeed
-
- def getYSpeed(self):
-
- return self.ySpeed
-
- def calcColorKey(self):
-
- myColorKey = images[0].get_at((0,0))
- setColorKey(myColorKey)
-
- def setColorKey(self, aColor):
-
- cnt = 0
- while cnt < len(self._images):
- self._images[cnt].set_colorkey(aColor)
- cnt += 1
-
- def update(self, t):
- pass
-
- def updateCurrnetAnimation(self, t):
- pass
-
- def nextFrame(self):
- pass
-
- def nextCurrentAnimFrame(self):
- pass
-
diff --git a/devtools/CompleteTestKit/DynamicDrawableObject - depreciated.py b/devtools/CompleteTestKit/DynamicDrawableObject - depreciated.py
deleted file mode 100644
index 0686bc5..0000000
--- a/devtools/CompleteTestKit/DynamicDrawableObject - depreciated.py
+++ /dev/null
@@ -1,110 +0,0 @@
-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 update(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 updateCurrentAnimation(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/DynamicDrawableObject.py b/devtools/CompleteTestKit/DynamicDrawableObject.py
deleted file mode 100755
index e69cd5f..0000000
--- a/devtools/CompleteTestKit/DynamicDrawableObject.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import pygame
-from DrawableObject import DrawableObject
-
-class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite):
-
- def __init__(self,images,textfileName,fps = 2, 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 updateAnim(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, 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/FinalDirtyTest.py b/devtools/CompleteTestKit/FinalDirtyTest.py
deleted file mode 100755
index 2435cf3..0000000
--- a/devtools/CompleteTestKit/FinalDirtyTest.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#! /usr/bin/env python
-import pygame
-from pygame.locals import *
-from boxes import BouncingBox
-from time import time
-from Scene import Scene
-from DrawableObject import DrawableObject
-from DynamicDrawableObject import DynamicDrawableObject
-pygame.init()
-
-#2345678911234567892123456789312345678941234567895123456789612345678971234567898
-#2345678911234567892123456789312345678941234567895123456789612345678971234567898
-
-#GREEN = 0, 192, 0
-screenWidth = 600
-screenHeight = 400
-maxGroup = 1
-maxTrial = 1 # multiple trials, but hard coded in this test
-maxFrame=500 #temperary
-infoFilePath = 'animInfo.txt'
-
-screen = pygame.display.set_mode(( screenWidth,screenHeight) )
-pygame.display.set_caption("Testing Custom Objects - FinalDirtyTest.py")
-background = pygame.image.load("Room.gif")
-
-start = time()
-
-for trial in range(maxTrial):
- print "New trial"
- screen.blit( background , [0,0] )
- pygame.display.flip()
-
- start = time()
-
- ###NOTE: Convert to an encapsulated LOOP###
-
- surfaceList = [
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/1.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/2.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/3.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/4.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/5.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/6.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/7.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/8.bmp").convert(),
- pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/9.bmp").convert()
- ]
-
- """ Object 1 will be a static image that will not be animating NOTE: once
- you pass the list of frames to the object, they and their encapsulated
- metadata are no longer only surfaces but are considered instead to be
- Sprite Objects
- """
- drawObject1 = DrawableObject(surfaceList, infoFilePath, None, 0 , 0 , 1 , 1)
- drawObject1.goToAnim("anim1")
-
- """ 2-4 are dynamic objects that will refresh at varying rates to illustrate
- the capabilities of our code to allow users to have varying refresh rate
- """
- drawObject2 = DynamicDrawableObject(
- surfaceList,infoFilePath,24,40,40,1,1)
- drawObject2.goToAnim("anim1")
-
- drawObject3 = DynamicDrawableObject(
- surfaceList,infoFilePath,24,80,80,1,1)
- drawObject3.goToAnim("anim1")
-
- drawObject4 = DynamicDrawableObject(
- surfaceList,infoFilePath,24,120,120,1,1)
- drawObject4.goToAnim("anim1")
-
- drawObject5 = DynamicDrawableObject(
- surfaceList,infoFilePath,24,160,160,1,1)
- drawObject5.goToAnim("anim1")
-
- group1 = Scene( drawObject1 )
- group1.addObjects( [drawObject2] )
- group1.addObjects( [drawObject3] )
- group1.addObjects( [drawObject4] )
- group1.addObjects( [drawObject5] )
-
- ### END: Convert to an encapsulated LOOP###
-
- """ We only need a single group for this example, but this format of an
- ordered list of our scenes/groups will be echoed in our end
- implementation.
-
- Revisit this and possibly simplify: this isn't a tutorial for suggested
- techniques, but a test to demonstrate that it can be applied and to
- record the data to imply why it's a viable alternative
- """
-
-# groupsList=[group1] # < --- What the hell and why
-
- print (time()-start) ,
- print " -- Time to load and sort animations into groupsListList"
-
- clock = pygame.time.Clock()
- clock.tick() # <--Updates the clock variable in milliseconds
-
- start = time()
- for maxFrame in range(maxFrame):
- dirtyList=[]
-
- """ Move/collision detection, individually blit each image group, add to
- dirtyList within the trial, this iterates through a list containing
- sublists of surfaces that we want to update. This list contains both
- """
- for grp in range(maxGroup):
- groupsList[grp].update( clock.get_time() )
- clock.tick()
- dirtyList.extend( groupsList[grp].draw(screen) )
- print dirtyList
- pygame.display.update(dirtyList) # <-- is there a faster way to place?
-
- for grp in range(maxGroup):
- groupsList[grp].clear(screen, background)
-
- print "Trial's average framerate was " , str(1/((time()-start)/maxFrame))
-
diff --git a/devtools/CompleteTestKit/FontDirtyTest.py b/devtools/CompleteTestKit/FontDirtyTest.py
deleted file mode 100644
index 4a37bfa..0000000
--- a/devtools/CompleteTestKit/FontDirtyTest.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#! /usr/bin/env python
-import pygame
-from pygame.locals import *
-from time import time
-from Scene import Scene
-from DrawableObject import DrawableObject
-from DrawableFontObject import DrawableFontObject
-pygame.init()
-
-FRAME=500
-screenWidth = 600
-screenHeight = 400
-numImages = 1
-maxTrial = 5 # multiple trials, but hard coded in this test
-dirtyList=[]
-
-print "width,height",
-print screenWidth,
-print ",",
-print screenHeight
-
-screen = pygame.display.set_mode( [int(screenWidth),
- int(screenHeight)] ) #Screen Set 600x400
-pygame.display.set_caption("Sprite Speed Test Window")
-GREEN = 0, 192, 0 # green
-background = pygame.image.load("Room.gif")
-screen.blit(background,[0,0])
-pygame.display.flip()
-start = time()
-
-for aTrial in range(maxTrial):
- start = time()
-
- font = pygame.font.SysFont("cmr10", 100)
- d = DrawableFontObject("hello world", font)
- d.goToAnim("anim1")
-
-
- group1=Scene(d)
- groups=[group1]
- print (time()-start) ,
- print " -- Time to load"
-
-
- clock = pygame.time.Clock()
- clock.tick()
- start = time()
- for frame in range(FRAME):
- dirtyList=[]
- d.changeText(str(frame))
- for image in range(numImages):
- #move / collision detection
- groups[image].update(clock.get_time())
- clock.tick()
- #individually blit each image group - add to list for update
- dirtyList.extend(groups[image].draw(screen))
-
- #draw the images flip/update
- pygame.display.update(dirtyList)
- for image in range(numImages):
- groups[image].clear(screen, background)
-
- #print 1/((time()-start)/FRAME)
- pygame.display.flip()
diff --git a/devtools/CompleteTestKit/OriginalScene - Depreciated.py b/devtools/CompleteTestKit/OriginalScene - Depreciated.py
deleted file mode 100644
index 4771f3b..0000000
--- a/devtools/CompleteTestKit/OriginalScene - Depreciated.py
+++ /dev/null
@@ -1,167 +0,0 @@
-import pygame
-
-class Scene(pygame.sprite.OrderedUpdates):
-
- def __init__(self, drawableObjects):
-
- self._spritelist = []
- RenderUpdates.__init__(self, *sprites)
-
-
- cnt = 0
- while cnt < len(drawableObjects):
- self._spritelist.append([drawableObjects[cnt],drawableObjects[cnt].getXPos(),drawableObjects[cnt].getYPos()])
- cnt += 1
-
- self.xPos = 0
- self.yPos = 0
- self.xSize = 0
- self.ySize = 0
-
- self.calcPosition()
- self.calcSize()
- self.setRelativePositions()
-
- def calcPosition(self):
-
- lowestX = 9000
- lowestY = 9000
-
- cnt = 0
- while cnt < len(self._spritelist):
- if self._spritelist[cnt][0].getXPos() < lowestX: lowestX = self._spritelist[cnt][0].getXPos()
- if self._spritelist[cnt][0].getYPos() < lowestY: lowestY = self._spritelist[cnt][0].getYPos()
- cnt += 1
-
- self.xPos = lowestX
- self.yPos = lowestY
-
- def calcSize(self):
-
- highestX = 0
- highestY = 0
-
- cnt = 0
- while cnt < len(self._spritelist):
- if self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize() > highestX: highestX = self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()
- if self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize() > highestY: highestY = self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()
- cnt += 1
-
- self.xSize = highestX - self.xPos
- self.ySize = highestY - self.yPos
-
- def addObjects(self, newDrawableObjects):
-
- cnt = 0
- while cnt < len(newDrawableObjects):
- self._spritelist.append([newDrawableObjects[cnt],newDrawableObjects[cnt].getXPos(),newDrawableObjects[cnt].getYPos()])
- cnt += 1
-
- self.calcPosition()
- self.calcSize()
- self.setRelativePositions()
-
- def setRelativePositions(self):
-
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][1] = self._spritelist[cnt][1] - self.xPos
- self._spritelist[cnt][2] = self._spritelist[cnt][2] - self.yPos
- cnt += 1
-
- def removeObject(self, index):
-
- if index < len(self._spritelist): del self._spritelist[index]
-
- def getObject(self, index):
-
- if index < len(self._spritelist):
- return self._spritelist[index][0]
-
- def getListSize(self):
- return len(self._spritelist)
-
- def moveObjects(self):
-
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].move()
- cnt += 1
-
- self.calcPosition()
- self.calcSize()
- self.setRelativePositions()
-
- def moveScene(self, xNudge = 0, yNudge = 0):
-
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].nudge(xNudge, yNudge)
- cnt += 1
-
- self.calcPosition()
-
- def setPosition(self, newXPos = None, newYPos = None):
-
- if newXPos != None: self.xPos = newXPos
- if newYPos != None: self.yPos = newYPos
-
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].setPosition(self.xPos + self._spritelist[cnt][1], self.yPos + self._spritelist[cnt][2])
- cnt += 1
-
- def getXPos(self):
- return self.xPos
-
- def getYPos(self):
- return self.yPos
-
- def getXSize(self):
- return self.xSize
-
- def getYSize(self):
- return self.ySize
-
- def scaleObjects(self, newXSize = None, newYSize = None):
-
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][0].scale(newXSize, newYSize)
- cnt += 1
-
- def scaleScene(self, newXSize = None, newYSize = None):
-
- xScale = 1
- yScale = 1
-
- if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
- if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
-
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][0].scale(xScale * self._spritelist[cnt][0].getXSize(), yScale * self._spritelist[cnt][0].getYSize())
- self._spritelist[cnt][1] = xScale * self._spritelist[cnt][1]
- self._spritelist[cnt][2] = yScale * self._spritelist[cnt][2]
- cnt += 1
-
- self.setPosition()
-
- def updateAnimations(self, t):
-
- 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/Room.gif b/devtools/CompleteTestKit/Room.gif
deleted file mode 100644
index 798ebf1..0000000
--- a/devtools/CompleteTestKit/Room.gif
+++ /dev/null
Binary files differ
diff --git a/devtools/CompleteTestKit/Scene.py b/devtools/CompleteTestKit/Scene.py
deleted file mode 100644
index a38cd48..0000000
--- a/devtools/CompleteTestKit/Scene.py
+++ /dev/null
@@ -1,174 +0,0 @@
-import pygame
-from pygame.sprite import RenderUpdates
-
-class Scene(pygame.sprite.RenderUpdates):
-
- def __init__(self, sprites):
-
- self._spritelist = []
- self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()])
- RenderUpdates.__init__(self, sprites)
-
- self.xPos = 0
- self.yPos = 0
- self.xSize = 0
- self.ySize = 0
-
- self.calcPosition()
- self.calcSize()
- self.setRelativePositions()
-
- def calcPosition(self):
-
- lowestX = 9000
- lowestY = 9000
-
- cnt = 0
- while cnt < len(self._spritelist):
- if self._spritelist[cnt][0].getXPos() < lowestX: lowestX = self._spritelist[cnt][0].getXPos()
- if self._spritelist[cnt][0].getYPos() < lowestY: lowestY = self._spritelist[cnt][0].getYPos()
- cnt += 1
-
- self.xPos = lowestX
- self.yPos = lowestY
-
- def calcSize(self):
-
- highestX = 0
- highestY = 0
-
- cnt = 0
- while cnt < len(self._spritelist):
- if (self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()) > highestX: highestX = self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()
- if (self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()) > highestY: highestY = self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()
- cnt += 1
-
- self.xSize = highestX - self.xPos
- self.ySize = highestY - self.yPos
-
- def addObject(self, newDrawableObject):
-
- RenderUpdates.add_internal(self, newDrawableObject)
- self._spritelist.append([newDrawableObject, newDrawableObject.getXPos(), newDrawableObject.getYPos()])
-
- def addObjects(self, newDrawableObjects):
- for sprite in newDrawableObjects:
- RenderUpdates.add_internal(self, sprite)
- self._spritelist.append([sprite, sprite.getXPos(), sprite.getYPos()])
-
- def setRelativePositions(self):
-
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][1] = self._spritelist[cnt][0].getXPos() - self.xPos
- self._spritelist[cnt][2] = self._spritelist[cnt][0].getYPos() - self.yPos
- cnt += 1
-
- def removeObject(self, sprite):
- RenderUpdates.remove_internal(self, sprite)
- #self._spritelist.remove(sprite)
-
-
- def getObject(self, index):
-
- if index < len(self._spritelist):
- return self._spritelist[index][0]
-
- def getListSize(self):
-
- return len(self._spritelist)
-
- def getList(self):
-
- return list(self._spritelist)
-
- def moveObjects(self):
-
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].move()
- cnt += 1
-
- self.calcPosition()
- self.calcSize()
- self.setRelativePositions()
-
- def moveScene(self, xNudge = 0, yNudge = 0):
-
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].nudge(xNudge, yNudge)
- cnt += 1
-
- self.calcPosition()
-
- def setPosition(self, newXPos = None, newYPos = None):
-
- if newXPos != None: self.xPos = newXPos
- if newYPos != None: self.yPos = newYPos
-
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].setPosition(self.xPos + self._spritelist[cnt][1], self.yPos + self._spritelist[cnt][2])
- cnt += 1
-
- def getXPos(self):
- return self.xPos
-
- def getYPos(self):
- return self.yPos
-
- def getXSize(self):
- return self.xSize
-
- def getYSize(self):
- return self.ySize
-
- def scaleObjects(self, newXSize = None, newYSize = None):
-
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][0].scale(newXSize, newYSize)
- cnt += 1
-
- def scaleScene(self, newXSize = None, newYSize = None):
-
- self.calcPosition()
- self.calcSize()
-
- xScale = 1
- yScale = 1
-
- if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
- if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
-
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][0].scale(xScale * self._spritelist[cnt][0].getXSize(), yScale * self._spritelist[cnt][0].getYSize())
- self._spritelist[cnt][1] = xScale * self._spritelist[cnt][1]
- self._spritelist[cnt][2] = yScale * self._spritelist[cnt][2]
- cnt += 1
-
- self.calcPosition()
- self.calcSize()
- self.setPosition()
-
- def updateAnimations(self, t):
-
- 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/animInfo.txt b/devtools/CompleteTestKit/animInfo.txt
deleted file mode 100644
index 8af5aef..0000000
--- a/devtools/CompleteTestKit/animInfo.txt
+++ /dev/null
@@ -1 +0,0 @@
-anim1,0,8
diff --git a/devtools/CompleteTestKit/boxes.py b/devtools/CompleteTestKit/boxes.py
deleted file mode 100644
index 56b3623..0000000
--- a/devtools/CompleteTestKit/boxes.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import pygame
-
-class BouncingBox(pygame.sprite.Sprite):
- def __init__(self, imagesList, initial_position):
- pygame.sprite.Sprite.__init__(self)
- self.images = imagesList
- self.listLen = len(imagesList)
- self.listPos = 0
- self.image = imagesList[self.listPos]
- self.rect = self.image.get_rect()
- self.rect.topleft = initial_position
- self.going_down = True # Start going downwards
- self.going_right = True # Start going right
-
- def update(self, right, bottom):
- # If we're at the top or bottom of the screen, switch directions.
- if self.rect.bottom >= bottom: self.going_down = False
- elif self.rect.top <= 0: self.going_down = True
- # If we're at the right or left of the screen, switch directions.
- if self.rect.right >= right: self.going_right = False
- elif self.rect.left <= 0: self.going_right = True
-
- # Move our position up or down by 2 pixels
- if self.going_down: self.rect.top += 2
- else: self.rect.top -= 2
- # Move our position left or right by 2 pixels
- if self.going_right: self.rect.right += 2
- else: self.rect.right -= 2
-
- if self.listPos < self.listLen - 1:
- self.listPos += 1
- else:
- self.listPos = 0
-
- self.image = self.images[self.listPos]
diff --git a/devtools/CompleteTestKit/reworkFinalDirtyTest.py b/devtools/CompleteTestKit/reworkFinalDirtyTest.py
deleted file mode 100644
index 1682bf0..0000000
--- a/devtools/CompleteTestKit/reworkFinalDirtyTest.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#! /usr/bin/env python
-import pygame
-from pygame.locals import *
-from boxes import BouncingBox
-from time import time
-from Scene import Scene
-from DrawableObject import DrawableObject
-from DynamicDrawableObject import DynamicDrawableObject
-pygame.init()
-
-#2345678911234567892123456789312345678941234567895123456789612345678971234567898
-#2345678911234567892123456789312345678941234567895123456789612345678971234567898
-
-screenWidth = 600
-screenHeight = 400
-maxImage = 5
-maxGroup = 1 # not implemented for the first step
- # groups are scenes within our code - our Scene inherits Group and ergo
- # functions as such
-maxTrial = 1 # multiple trials, but hard coded in this test
-maxFrame=500 # temperary
-infoFilePath = 'animInfo.txt'
-
-screen = pygame.display.set_mode(( screenWidth,screenHeight) )
-pygame.display.set_caption("Testing Custom Objects - FinalDirtyTest.py")
-background = pygame.image.load("Room.gif")
-
-start = time()
-
-for trial in range(maxTrial):
- print "New trial"
- screen.blit( background , [0,0] )
- pygame.display.flip()
-
- start = time()
- surfaceList = []
- drawObject = []
- scenesList = []
-
- drawObject = [ DrawableObject(
- surfaceList, infoFilePath, None, 0 , 0 , 1 , 1) ]
- drawObject[0].goToAnim("anim1")
-
- for img in range(maxImage)[1:]:
- surfaceList.append(pygame.image.load(
- "./Animation Styles/IndividualFrames/bmp16/a2/",img,
- "1.bmp").convert())
- drawObject[img] = DynamicDrawableObject(
- surfaceList,infoFilePath,24,img*40,img*40,1,1)
- drawObject[img].goToAnim("anim1")
-
- scenesList.append( Scene( drawObject[img] ) )
-
-# 'scenesList' is a list filled with Scene objects (those inherit/extend Group)
-
- print (time()-start) ,
- print " -- Time to load and sort animations into scenesList"
-
- clock = pygame.time.Clock()
- clock.tick() # <--Updates the clock variable in milliseconds
-
- start = time()
- for maxFrame in range(maxFrame):
- dirtyList=[]
-
- scenesList[1].update( clock.get_time() ) ## hard coded for now
- clock.tick()
- dirtyList.extend( scenesList[grp].draw(screen) )
- print dirtyList
- pygame.display.update(dirtyList) # <-- is there a faster way to place?
-
- scenesList[grp].clear(screen, background)
-
- print "Trial's average framerate was " , str(1/((time()-start)/maxFrame))
-
diff --git a/devtools/Dave's Test Kit/DODirtyTest.py b/devtools/Dave's Test Kit/DODirtyTest.py
index 88e2309..b3d5df3 100644..100755
--- a/devtools/Dave's Test Kit/DODirtyTest.py
+++ b/devtools/Dave's Test Kit/DODirtyTest.py
@@ -1,24 +1,18 @@
#! /usr/bin/env python
import pygame
from pygame.locals import *
-from time import time
+import time
from Scene import Scene
from DrawableObject import DrawableObject
from DynamicDrawableObject import DynamicDrawableObject
pygame.init()
-FRAME=500 #setting number of frames per trial
+FRAME=2500 #setting number of frames per trial
screenWidth = 600 #screen width
screenHeight = 400 #screen height
-numImages = 1 #number of copies of images
+numImages = 4 #number of copies of images
+numGroups = 1
maxTrial = 5 # multiple trials, but hard coded in this test
-dirtyList=[] #list for objects to be updated
-
-#print the height and width
-print "width,height",
-print screenWidth,
-print ",",
-print screenHeight
screen = pygame.display.set_mode( [int(screenWidth),
int(screenHeight)] ) #Setting the screen size to the given size
@@ -48,30 +42,51 @@ surfaceList = [
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/9.bmp").convert()
]
-
+
for aTrial in range(maxTrial):
- start = time()#starting timer
+ start = time.time()#starting timer
- d = DynamicDrawableObject(surfaceList,'', 100) #creating my DynamicDrawableObject object using my previously made images list
+#creating my DynamicDrawableObject object using my previously made images list
+ a = DynamicDrawableObject(surfaceList,'', 72, 40, 40 , 2,2)
+ b = DynamicDrawableObject(surfaceList,'', 24, 80, 80 , 2,2)
+ c = DynamicDrawableObject(surfaceList,'', 12,120, 120, 2,2)
+ d = DynamicDrawableObject(surfaceList,'', 1, 160, 160, 2,2)
- group1=Scene(d) #creating my scene
- groups=[group1] #creating my array of scenes
+ sceneList=[Scene(a),] #creating my array of scenes
+ sceneList[0].addObjects([b,c,d])
+
+ for sc in range(numGroups):
+ for img in range(sceneList[sc].getListSize()):
+ sceneList[sc].getObject(img).setSpeed(2,2)
+
#printing time to load images and stuff
- print (time()-start) ,
+ print (time.time()-start) ,
print " -- Time to load"
-
+
#setting up timer stuff
clock = pygame.time.Clock()
clock.tick()
- start = time()
+ start = time.time()
+
#loop that goes through and upodates my objects
for frame in range(FRAME):
+ time.sleep(.25)
dirtyList=[]
- for image in range(numImages):
- groups[image].update(clock.get_time())#calls the update function for my DDO
- clock.tick()#ticks clock
- dirtyList.extend(groups[image].draw(screen))#adding stuff that has been updated to my dirty list
+ for sc in range(numGroups):
+
+ for img in range(sceneList[sc].getListSize()):
+ thisrect = sceneList[sc].getObject(img).getRectangle()
+ if thisrect.right>screenWidth or thisrect.left<0:
+ sceneList[sc].setSpeed( sceneList[sc].getXSpeed()*-1, None )
+ if thisrect.bottom>screenHeight or thisrect.top<0:
+ sceneList[sc].setSpeed( None , sceneList[sc].getYSpeed()*-1 )
+
+ sceneList[sc].update(clock.get_time()) #calls the update function for my DDO
+
+ clock.tick() #ticks clock
+
+ dirtyList.extend( sceneList[sc].draw(screen) )#adding stuff that has been updated to my dirty list
- pygame.display.update(dirtyList)#updates the screen with the dirty list
- for image in range(numImages):
- groups[image].clear(screen, background)#clears stuff behind images based on given background image.
+ pygame.display.update(dirtyList) #updates the screen with the dirty list
+ for sc in range(numGroups):
+ sceneList[sc].clear(screen, background) #clears stuff behind images based on given background image.
diff --git a/devtools/Dave's Test Kit/DynamicDrawableObject.py b/devtools/Dave's Test Kit/DynamicDrawableObject.py
index 9c7f2ac..9319c9e 100644
--- a/devtools/Dave's Test Kit/DynamicDrawableObject.py
+++ b/devtools/Dave's Test Kit/DynamicDrawableObject.py
@@ -4,27 +4,25 @@ 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):
-
self._delay = 1000/fps
DrawableObject.__init__(self, images, textfileName, x, y)
def addImages(self, images):
-
self._images.extend(images)
def setSpeed(self, xVelocity = None, yVelocity = None):
-
if xVelocity != None: self.xSpeed = xVelocity
if yVelocity != None: self.ySpeed = yVelocity
def getXSpeed(self):
-
return self.xSpeed
def getYSpeed(self):
-
return self.ySpeed
-
+
+ def getRectangle(self):
+ return self.rect
+
def move(self):
self.xPos += self.xSpeed
self.yPos += self.ySpeed
@@ -32,9 +30,7 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite):
self.rect.top += self.ySpeed
def update(self, t):
-
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]:
self._frame = self.animations.get(self._current_anim)[0]
diff --git a/devtools/Dave's Test Kit/Scene.py b/devtools/Dave's Test Kit/Scene.py
index 13827d3..7aec48c 100644
--- a/devtools/Dave's Test Kit/Scene.py
+++ b/devtools/Dave's Test Kit/Scene.py
@@ -34,17 +34,17 @@ class Scene(pygame.sprite.RenderUpdates):
def calcSize(self):
- highestX = 0
- highestY = 0
+ highestX = 0
+ highestY = 0
- cnt = 0
- while cnt < len(self._spritelist):
- if (self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()) > highestX: highestX = self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()
- if (self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()) > highestY: highestY = self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()
- cnt += 1
+ cnt = 0
+ while cnt < len(self._spritelist):
+ if (self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()) > highestX: highestX = self._spritelist[cnt][0].getXPos() + self._spritelist[cnt][0].getXSize()
+ if (self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()) > highestY: highestY = self._spritelist[cnt][0].getYPos() + self._spritelist[cnt][0].getYSize()
+ cnt += 1
- self.xSize = highestX - self.xPos
- self.ySize = highestY - self.yPos
+ self.xSize = highestX - self.xPos
+ self.ySize = highestY - self.yPos
def addObject(self, newDrawableObject):
RenderUpdates.add_internal(self, newDrawableObject)
@@ -52,151 +52,148 @@ class Scene(pygame.sprite.RenderUpdates):
def addObjects(self, newDrawableObjects):
for sprite in newDrawableObjects:
- RenderUpdates.add_internal(self, sprite)
- self._spritelist.append([sprite, sprite.getXPos(), sprite.getYPos()])
+ RenderUpdates.add_internal(self, sprite)
+ self._spritelist.append([sprite, sprite.getXPos(), sprite.getYPos()])
def setRelativePositions(self):
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][1] = self._spritelist[cnt][0].getXPos() - self.xPos
- self._spritelist[cnt][2] = self._spritelist[cnt][0].getYPos() - self.yPos
- cnt += 1
+ cnt = 0
+ while cnt < len(self._spritelist):
+ self._spritelist[cnt][1] = self._spritelist[cnt][0].getXPos() - self.xPos
+ self._spritelist[cnt][2] = self._spritelist[cnt][0].getYPos() - self.yPos
+ cnt += 1
def removeObject(self, sprite):
- for i in self._spritelist:
- if i[0] == sprite:
- self._spritelist.remove(i)
- break
- RenderUpdates.remove_internal(self, sprite)
+ for i in self._spritelist:
+ if i[0] == sprite:
+ self._spritelist.remove(i)
+ break
+ RenderUpdates.remove_internal(self, sprite)
def getObject(self, index):
- if index < len(self._spritelist):
- return self._spritelist[index][0]
+ if index < len(self._spritelist):
+ return self._spritelist[index][0]
def getListSize(self):
- return len(self._spritelist)
+ return len(self._spritelist)
def getList(self):
- return list(self._spritelist)
+ return list(self._spritelist)
def moveObjects(self):
- cnt = 0
- while cnt < len(self._spritelist):
+ cnt = 0
+ while cnt < len(self._spritelist):
- self._spritelist[cnt][0].move()
- cnt += 1
+ self._spritelist[cnt][0].move()
+ cnt += 1
- self.calcPosition()
- self.calcSize()
- self.setRelativePositions()
+ self.calcPosition()
+ self.calcSize()
+ self.setRelativePositions()
def moveScene(self, xNudge = 0, yNudge = 0):
- cnt = 0
- while cnt < len(self._spritelist):
+ cnt = 0
+ while cnt < len(self._spritelist):
- self._spritelist[cnt][0].nudge(xNudge, yNudge)
- cnt += 1
+ self._spritelist[cnt][0].nudge(xNudge, yNudge)
+ cnt += 1
- self.calcPosition()
+ self.calcPosition()
def setPosition(self, newXPos = None, newYPos = None):
- if newXPos != None: self.xPos = newXPos
- if newYPos != None: self.yPos = newYPos
+ if newXPos != None: self.xPos = newXPos
+ if newYPos != None: self.yPos = newYPos
- cnt = 0
- while cnt < len(self._spritelist):
+ cnt = 0
+ while cnt < len(self._spritelist):
- self._spritelist[cnt][0].setPosition(self.xPos + self._spritelist[cnt][1], self.yPos + self._spritelist[cnt][2])
- cnt += 1
+ self._spritelist[cnt][0].setPosition(self.xPos + self._spritelist[cnt][1], self.yPos + self._spritelist[cnt][2])
+ cnt += 1
def getXPos(self):
- return self.xPos
+ return self.xPos
def getYPos(self):
- return self.yPos
+ return self.yPos
def getXSize(self):
- return self.xSize
+ return self.xSize
def getYSize(self):
- return self.ySize
+ return self.ySize
def scaleObjects(self, newXSize = None, newYSize = None):
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][0].scale(newXSize, newYSize)
- cnt += 1
+ cnt = 0
+ while cnt < len(self._spritelist):
+ self._spritelist[cnt][0].scale(newXSize, newYSize)
+ cnt += 1
def scaleScene(self, newXSize = None, newYSize = None):
- self.calcPosition()
- self.calcSize()
+ self.calcPosition()
+ self.calcSize()
- xScale = 1
- yScale = 1
+ xScale = 1
+ yScale = 1
- if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
- if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
+ if newXSize != None: xScale = (newXSize * 1.0)/self.xSize
+ if newYSize != None: yScale = (newYSize * 1.0)/self.ySize
- cnt = 0
- while cnt < len(self._spritelist):
- self._spritelist[cnt][0].scale(xScale * self._spritelist[cnt][0].getXSize(), yScale * self._spritelist[cnt][0].getYSize())
- self._spritelist[cnt][1] = xScale * self._spritelist[cnt][1]
- self._spritelist[cnt][2] = yScale * self._spritelist[cnt][2]
- cnt += 1
+ cnt = 0
+ while cnt < len(self._spritelist):
+ self._spritelist[cnt][0].scale(xScale * self._spritelist[cnt][0].getXSize(), yScale * self._spritelist[cnt][0].getYSize())
+ self._spritelist[cnt][1] = xScale * self._spritelist[cnt][1]
+ self._spritelist[cnt][2] = yScale * self._spritelist[cnt][2]
+ cnt += 1
- self.calcPosition()
- self.calcSize()
- self.setPosition()
+ self.calcPosition()
+ self.calcSize()
+ self.setPosition()
def update(self, t):
- for s in self._spritelist: s[0].update(t);
+ for s in self._spritelist: s[0].update(t);
def draw(self, surface):
- spritedict = self.spritedict
- surface_blit = surface.blit
- dirty = self.lostsprites
- self.lostsprites = []
- dirty_append = dirty.append
- for s in self._spritelist:
- r = spritedict[s[0]]
- newrect = surface_blit(s[0].image, s[0].rect)
- if r is 0:
+ spritedict = self.spritedict
+ surface_blit = surface.blit
+ dirty = self.lostsprites
+ self.lostsprites = []
+ dirty_append = dirty.append
+ for s in self._spritelist:
+ r = spritedict[s[0]]
+ newrect = surface_blit(s[0].image, s[0].rect)
+ if r is 0:
dirty_append(newrect)
- else:
- if newrect.colliderect(r):
+ else:
+ if newrect.colliderect(r):
dirty_append(newrect.union(r))
- else:
- dirty_append(newrect)
- dirty_append(r)
- spritedict[s[0]] = newrect
- return dirty
+ else:
+ dirty_append(newrect)
+ dirty_append(r)
+ spritedict[s[0]] = newrect
+ return dirty
def drawEntireScene(self, surface):
- spritedict = self.spritedict
- surface_blit = surface.blit
- dirty = self.lostsprites
- self.lostsprites = []
- dirty_append = dirty.append
- for s in self._spritelist:
- dirty_append(spritedict[s[0]])
- dirty_append(surface_blit(s[0].image, s[0].rect))
- return dirty
+ spritedict = self.spritedict
+ surface_blit = surface.blit
+ dirty = self.lostsprites
+ self.lostsprites = []
+ dirty_append = dirty.append
+ for s in self._spritelist:
+ dirty_append(spritedict[s[0]])
+ dirty_append(surface_blit(s[0].image, s[0].rect))
+ return dirty
def nextFrame(self):
+ for cnt in range(len(self._spritelist)):
- cnt = 0
- while cnt < len(self._spritelist):
-
- self._spritelist[cnt][0].nextFrame()
- cnt += 1
+ self._spritelist[cnt][0].nextFrame()