From 95ce0140c9fc98365ed58b0ee2d227b0793e534c Mon Sep 17 00:00:00 2001 From: davesilver Date: Tue, 27 Jul 2010 15:39:01 +0000 Subject: Editing Sprite tests --- (limited to 'devtools/CompleteTestKit') diff --git a/devtools/CompleteTestKit/DynamicDrawableObject2.py b/devtools/CompleteTestKit/DynamicDO.py index a58f4b9..5375807 100644 --- a/devtools/CompleteTestKit/DynamicDrawableObject2.py +++ b/devtools/CompleteTestKit/DynamicDO.py @@ -26,7 +26,7 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite): # self._last_update = timePassed%self._delay # self._last_update = timePassed - def updateCurrentAnimation(self, right, bottom): + def updateWithMovementself, 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 diff --git a/devtools/CompleteTestKit/dirtyTest2.py b/devtools/CompleteTestKit/FinalDirtyTest.py index e3c4779..61a1968 100644 --- a/devtools/CompleteTestKit/dirtyTest2.py +++ b/devtools/CompleteTestKit/FinalDirtyTest.py @@ -3,9 +3,9 @@ import pygame from pygame.locals import * from boxes import BouncingBox from time import time -from NewScene import Scene +from Scene import Scene from DrawableObject import DrawableObject -from DynamicDrawableObject2 import DynamicDrawableObject +from DynamicDO import DynamicDrawableObject pygame.init() FRAME=500 diff --git a/devtools/CompleteTestKit/NewScene.py b/devtools/CompleteTestKit/OriginalScene.py index 9727177..4771f3b 100644 --- a/devtools/CompleteTestKit/NewScene.py +++ b/devtools/CompleteTestKit/OriginalScene.py @@ -1,14 +1,18 @@ import pygame -from pygame.sprite import RenderUpdates -class Scene(pygame.sprite.RenderUpdates): - - def __init__(self, sprites): +class Scene(pygame.sprite.OrderedUpdates): + def __init__(self, drawableObjects): + self._spritelist = [] - self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()]) - RenderUpdates.__init__(self, sprites) + 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 @@ -39,29 +43,35 @@ class Scene(pygame.sprite.RenderUpdates): 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() + 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): - for sprite in newDrawableObjects: - RenderUpdates.add_internal(self, sprite) - self._spritelist.append([sprite, sprite.getXPos(), sprite.getYPos()]) + + 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][0].getXPos() - self.xPos - self._spritelist[cnt][2] = self._spritelist[cnt][0].getYPos() - self.yPos + 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, sprite): - RenderUpdates.remove_internal(self, sprite) - self._spritelist.remove(sprite) + def removeObject(self, index): + + if index < len(self._spritelist): del self._spritelist[index] def getObject(self, index): @@ -69,13 +79,8 @@ class Scene(pygame.sprite.RenderUpdates): return self._spritelist[index][0] def getListSize(self): - return len(self._spritelist) - def getList(self): - - return list(self._spritelist) - def moveObjects(self): cnt = 0 @@ -130,9 +135,6 @@ class Scene(pygame.sprite.RenderUpdates): def scaleScene(self, newXSize = None, newYSize = None): - self.calcPosition() - self.calcSize() - xScale = 1 yScale = 1 @@ -146,8 +148,6 @@ class Scene(pygame.sprite.RenderUpdates): self._spritelist[cnt][2] = yScale * self._spritelist[cnt][2] cnt += 1 - self.calcPosition() - self.calcSize() self.setPosition() def updateAnimations(self, t): diff --git a/devtools/CompleteTestKit/Scene.py b/devtools/CompleteTestKit/Scene.py index 4771f3b..9727177 100644 --- a/devtools/CompleteTestKit/Scene.py +++ b/devtools/CompleteTestKit/Scene.py @@ -1,18 +1,14 @@ import pygame +from pygame.sprite import RenderUpdates -class Scene(pygame.sprite.OrderedUpdates): +class Scene(pygame.sprite.RenderUpdates): - def __init__(self, drawableObjects): - - self._spritelist = [] - RenderUpdates.__init__(self, *sprites) + def __init__(self, sprites): + self._spritelist = [] + self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()]) + 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 @@ -43,35 +39,29 @@ class Scene(pygame.sprite.OrderedUpdates): 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() + 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 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][1] - self.xPos - self._spritelist[cnt][2] = self._spritelist[cnt][2] - self.yPos + 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, index): - - if index < len(self._spritelist): del self._spritelist[index] + def removeObject(self, sprite): + RenderUpdates.remove_internal(self, sprite) + self._spritelist.remove(sprite) def getObject(self, index): @@ -79,8 +69,13 @@ class Scene(pygame.sprite.OrderedUpdates): return self._spritelist[index][0] def getListSize(self): + return len(self._spritelist) + def getList(self): + + return list(self._spritelist) + def moveObjects(self): cnt = 0 @@ -135,6 +130,9 @@ class Scene(pygame.sprite.OrderedUpdates): def scaleScene(self, newXSize = None, newYSize = None): + self.calcPosition() + self.calcSize() + xScale = 1 yScale = 1 @@ -148,6 +146,8 @@ class Scene(pygame.sprite.OrderedUpdates): self._spritelist[cnt][2] = yScale * self._spritelist[cnt][2] cnt += 1 + self.calcPosition() + self.calcSize() self.setPosition() def updateAnimations(self, t): diff --git a/devtools/CompleteTestKit/dirtyTest.py b/devtools/CompleteTestKit/dirtyTest.py deleted file mode 100755 index faadc9e..0000000 --- a/devtools/CompleteTestKit/dirtyTest.py +++ /dev/null @@ -1,68 +0,0 @@ -#! /usr/bin/env python -import pygame -from pygame.locals import * -from boxes import BouncingBox -from time import time -pygame.init() - -FRAME=500 -screenWidth = 600 -screenHeight = 400 -numImages = 5 -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() -frameList = [ - pygame.image.load("./art/BMP24/1.bmp").convert(), - pygame.image.load("./art/BMP24/2.bmp").convert(), - pygame.image.load("./art/BMP24/3.bmp").convert(), - pygame.image.load("./art/BMP24/4.bmp").convert(), - pygame.image.load("./art/BMP24/5.bmp").convert(), - pygame.image.load("./art/BMP24/6.bmp").convert(), - pygame.image.load("./art/BMP24/7.bmp").convert(), - pygame.image.load("./art/BMP24/8.bmp").convert(), - pygame.image.load("./art/BMP24/9.bmp").convert(), -] - -for aTrial in range(maxTrial): - start = time() - group1=pygame.sprite.RenderUpdates(BouncingBox(frameList,(0,0)) ) - group2=pygame.sprite.RenderUpdates(BouncingBox(frameList,(40,40)) ) - group3=pygame.sprite.RenderUpdates(BouncingBox(frameList,(80,80)) ) - group4=pygame.sprite.RenderUpdates(BouncingBox(frameList,(120,120)) ) - group5=pygame.sprite.RenderUpdates(BouncingBox(frameList,(160,160)) ) - groups=[group1,group2,group3,group4,group5] - print (time()-start) , - print " -- Time to load" - - start = time() - for frame in range(FRAME): - dirtyList=[] - for image in range(numImages): - #move / collision detection - groups[image].update( screenWidth,screenHeight ) - - #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() -- cgit v0.9.1