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-02 14:35:20 (GMT)
committer slm <jtmengel@gmail.com>2010-08-02 14:35:20 (GMT)
commitdbd2fa822639e70753c25bb6e6d9b398e14dc6b0 (patch)
tree85d6c02c096d3ecb5692673e27a9ef3482a81e6a /devtools
parentfede1264db8d066a1e5d3ff40233e8b033c7b73b (diff)
Small changes for DaveSilver.
Diffstat (limited to 'devtools')
-rw-r--r--devtools/CompleteTestKit/DrawableFontObject.py1
-rwxr-xr-x[-rw-r--r--]devtools/CompleteTestKit/DrawableObject.py176
-rwxr-xr-x[-rw-r--r--]devtools/CompleteTestKit/DynamicDrawableObject.py116
-rwxr-xr-xdevtools/CompleteTestKit/FinalDirtyTest.py1
-rw-r--r--devtools/CompleteTestKit/Scene.py1
-rw-r--r--devtools/CompleteTestKit/reworkFinalDirtyTest.py11
-rwxr-xr-xdevtools/CompleteTestKit/testKit.py3
7 files changed, 173 insertions, 136 deletions
diff --git a/devtools/CompleteTestKit/DrawableFontObject.py b/devtools/CompleteTestKit/DrawableFontObject.py
index 56783f1..6fce74b 100644
--- a/devtools/CompleteTestKit/DrawableFontObject.py
+++ b/devtools/CompleteTestKit/DrawableFontObject.py
@@ -14,3 +14,4 @@ class DrawableFontObject(DrawableObject, pygame.sprite.Sprite):
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
index fca2d02..9b55ceb 100644..100755
--- a/devtools/CompleteTestKit/DrawableObject.py
+++ b/devtools/CompleteTestKit/DrawableObject.py
@@ -2,24 +2,32 @@ import pygame
class DrawableObject(pygame.sprite.Sprite):
- def __init__(self,images, textfileName, x = 0, y = 0,):
+ 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 = []
-
- for i in range(len(images)):
- self._images.append(images[i].convert())
- self._origImages.append(images[i].convert())
-
- self.image = self._images[0]
- self.rect = self.image.get_rect()
+ 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 = images[0].get_width()
- self.ySize = images[0].get_width()
- self.rect.topleft = (x,y)
+ self.xSize = 40
+ self.ySize = 40
if textfileName != '':
@@ -31,93 +39,119 @@ class DrawableObject(pygame.sprite.Sprite):
self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
currentLine = f.readline()
+
def addImages(self, images):
- for i in range(len(images)):
- self._images.append(images[i].convert())
- self._origImages.append(images[i].convert())
+ self._images.extend(images)
+ #self._originals.extend(images)
+
def goToAnim(self, animName):
- if self.animations.get(animName, 0) != 0:
- self._current_anim = animName
- self._frame = self.animations[animName][0]
- self.image = self._images[self._frame]
-
-#
-# Again I took out default values because I don't want the primary function
-# of the method to be effectively overridable and have a method that can
-# do nothing without raising flags
-# I also conformed the parameter naming convention so that it conforms with the
-# other methods' naming convention in this object
-# JT Jul 28 2010
- def nudge(self, x, y):
- self.xPos += x
- self.yPos += y
- self.rect.right += x
- self.rect.top += y
-
-#
-# reworked the loop for efficiency and the if statement logic
-# JT Jul 28 2010
- def scale(self, x=None, y=None):
- if type(x).__name__=='int': self.xSize = x
- if type(y).__name__=='int': self.ySize = y
-
- for i in range(len(self._images)):
- self._origImages[i] = pygame.transform.scale(self._origImages[i], (self.xSize, self.ySize))
- self._images[i] = self._origImages[i]
+ 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
-#
-# I changed rotate to utilize a for instead of a counter/while loop for speed
-# JT - Jul 28 2010
def rotate(self,angle):
+
+ cnt = 0
+
self.myAngle += angle
- for i in range(len(self._images)):
- self._images[i] = pygame.transform.rotate(self._origImages[i], self.myAngle)
+ while cnt < len(self._images):
+
+ self._images[cnt] = pygame.transform.rotate(self._origImages[cnt], self.myAngle)
+ cnt += 1
def getRotation(self):
- return self.myAngle
-#
-# I don't recommend forcing people to keep images within the screen
-# a common trick in bullet hells is to temporarily move image objects off-
-# screen when they die so the game isn't constantly loading a new instance of
-# a common enemy
-# JT - Jul 28 2010
+ return self.myAngle
+
def setPosition(self, x = None, y = None):
- if type(x).__name__=='int': self.xPos = x
- if type(y).__name__=='int': self.yPos = y
- self.rect.topleft = (self.xPos, self.yPos)
+
+ 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
-#
-# Added defaul values in case someone wants their color key to be taken from bot.right corner, eg
-# JT Jul 28 2010
- def calcColorKey(self, x=0, y=0):
- myColorKey = images[0].get_at((x,y))
+ 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):
- for i in range(len(self._images)):
- self._images[i].set_colorkey(aColor)
-#
-# Set default value to allow the method to be called empty (since t does nothing atm)
-# JT Jul 28 2010
- def update(self, t=None):
+
+ 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 \ No newline at end of file
+ pass
+
diff --git a/devtools/CompleteTestKit/DynamicDrawableObject.py b/devtools/CompleteTestKit/DynamicDrawableObject.py
index 8705fa7..e69cd5f 100644..100755
--- a/devtools/CompleteTestKit/DynamicDrawableObject.py
+++ b/devtools/CompleteTestKit/DynamicDrawableObject.py
@@ -3,69 +3,62 @@ 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):
+ def __init__(self,images,textfileName,fps = 2, x = 0, y = 0, xVelocity = 0, yVelocity = 0):
- if fps > 0:
- self._delay = 1000 / fps
- else:
- self._delay = 1000
-
- self.xSpeed = xVelocity
- self.ySpeed = yVelocity
-
- self._start = pygame.time.get_ticks()
- self._last_update = 0
- self._frame = 0
- self.animations = {}
- self._current_anim = ""
-
- DrawableObject.__init__(self, images, textfileName, x, y)
+ DrawableObject.__init__(self, images, textfileName, fps, x, y, xVelocity, yVelocity)
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 move(self):
- self.xPos += self.xSpeed
- self.yPos += self.ySpeed
- self.rect.right += self.xSpeed
- self.rect.top += self.ySpeed
-
- def update(self, t): # just updates the frame / object
+ def updateAnim(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]
+ if timePassed > self._delay:
self._frame += timePassed/self._delay
+ while self._frame >= len(self._images):
- 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]
+ framesPast = self._frame - len(self._images)
+ self._frame = framesPast - 1
self.image = self._images[self._frame]
self._last_update = timePassed%self._delay
- else:
- self._last_update = timePassed
+ 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
@@ -73,16 +66,25 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite):
def nextCurrentAnimFrame(self):
- for cnt in range(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]
+ 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.image = self._images[self._frame]
+ 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
index 5d8421e..2435cf3 100755
--- a/devtools/CompleteTestKit/FinalDirtyTest.py
+++ b/devtools/CompleteTestKit/FinalDirtyTest.py
@@ -126,3 +126,4 @@ for trial in range(maxTrial):
groupsList[grp].clear(screen, background)
print "Trial's average framerate was " , str(1/((time()-start)/maxFrame))
+
diff --git a/devtools/CompleteTestKit/Scene.py b/devtools/CompleteTestKit/Scene.py
index 320246b..a38cd48 100644
--- a/devtools/CompleteTestKit/Scene.py
+++ b/devtools/CompleteTestKit/Scene.py
@@ -171,3 +171,4 @@ class Scene(pygame.sprite.RenderUpdates):
self._spritelist[cnt][0].nextFrame()
cnt += 1
+
diff --git a/devtools/CompleteTestKit/reworkFinalDirtyTest.py b/devtools/CompleteTestKit/reworkFinalDirtyTest.py
index c483f4f..1682bf0 100644
--- a/devtools/CompleteTestKit/reworkFinalDirtyTest.py
+++ b/devtools/CompleteTestKit/reworkFinalDirtyTest.py
@@ -44,16 +44,12 @@ for trial in range(maxTrial):
for img in range(maxImage)[1:]:
surfaceList.append(pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/",img,
- "1.bmp").convert()))
+ "1.bmp").convert())
drawObject[img] = DynamicDrawableObject(
surfaceList,infoFilePath,24,img*40,img*40,1,1)
drawObject[img].goToAnim("anim1")
- if img==1:
- scene1[] = Scene( drawObject[img] )
- scenesList.append(scene1)
- else:
- scene1.addObjects( [ drawObject[img] ] )
- scenesList.append(scene1)
+
+ scenesList.append( Scene( drawObject[img] ) )
# 'scenesList' is a list filled with Scene objects (those inherit/extend Group)
@@ -76,3 +72,4 @@ for trial in range(maxTrial):
scenesList[grp].clear(screen, background)
print "Trial's average framerate was " , str(1/((time()-start)/maxFrame))
+
diff --git a/devtools/CompleteTestKit/testKit.py b/devtools/CompleteTestKit/testKit.py
index e19530d..ce1c4f5 100755
--- a/devtools/CompleteTestKit/testKit.py
+++ b/devtools/CompleteTestKit/testKit.py
@@ -585,4 +585,5 @@ while 1:
break
break
-#ILY GEOFF A
+#IDLY GEOFF A
+