diff options
author | davesilver <nibor123@gmail.com> | 2010-07-30 19:19:53 (GMT) |
---|---|---|
committer | davesilver <nibor123@gmail.com> | 2010-07-30 19:19:53 (GMT) |
commit | f0476a5090a57087af22e7dcf2451ec26322f46c (patch) | |
tree | b26b8783841d8c2d8565d46d10e0103c5ac48a82 | |
parent | f64db81c08857caf22402224833c4fed7caab902 (diff) |
Updating for new changes to DrawableObject
-rw-r--r-- | MAFH2/BattleEngine.py | 6 | ||||
-rw-r--r-- | MAFH2/BattleMenu.py | 2 | ||||
-rw-r--r-- | MAFH2/MafhGameMenu.py | 2 | ||||
-rw-r--r-- | MAFH2/fortuneengine/DrawableObject.py | 130 | ||||
-rw-r--r-- | MAFH2/fortuneengine/DynamicDrawableObject.py | 83 | ||||
-rw-r--r-- | MAFH2/fortuneengine/GameEngine.py | 2 |
6 files changed, 57 insertions, 168 deletions
diff --git a/MAFH2/BattleEngine.py b/MAFH2/BattleEngine.py index 3119010..93a58ff 100644 --- a/MAFH2/BattleEngine.py +++ b/MAFH2/BattleEngine.py @@ -48,11 +48,11 @@ class BattleEngine(GameEngineElement): # Preload images self.__drawableObjects = {} for i in ['arrow_select']: - self.__drawableObjects[i] = DrawableObject([pygame.image.load( HUD_PATH + i + ".gif" )]) + self.__drawableObjects[i] = DrawableObject([pygame.image.load( HUD_PATH + i + ".gif" )], '') self.game_engine.get_scene().addObject(self.__drawableObjects[i]) - self.__drawableObjects['hp'] = DrawableObject(Spritesheet( HUD_PATH + "hp.gif" ).img_extract(11,1,100,100)) - self.__drawableObjects['bt'] = DrawableObject(Spritesheet( HUD_PATH + "bt.gif" ).img_extract(1,11,100,25)) + self.__drawableObjects['hp'] = DrawableObject(Spritesheet( HUD_PATH + "hp.gif" ).img_extract(11,1,100,100), '') + self.__drawableObjects['bt'] = DrawableObject(Spritesheet( HUD_PATH + "bt.gif" ).img_extract(1,11,100,25), '') self.game_engine.get_scene().addObject(self.__drawableObjects['hp']) self.game_engine.get_scene().addObject(self.__drawableObjects['bt']) diff --git a/MAFH2/BattleMenu.py b/MAFH2/BattleMenu.py index 4e0c231..5648d34 100644 --- a/MAFH2/BattleMenu.py +++ b/MAFH2/BattleMenu.py @@ -14,7 +14,7 @@ class BattleMenuHolder( GameEngineElement ): self.menu = None self.callback = callback #self.background = pygame.image.load(MENU_PATH + "battleMenubackground.gif") - self.background = DrawableObject([pygame.image.load( MENU_PATH + "battleMenubackground.gif")]) + self.background = DrawableObject([pygame.image.load( MENU_PATH + "battleMenubackground.gif")], '') self.game_engine.get_scene().addObject(self.background) self.disp = "" self.sec_des = "" diff --git a/MAFH2/MafhGameMenu.py b/MAFH2/MafhGameMenu.py index 7cdbc12..959ad29 100644 --- a/MAFH2/MafhGameMenu.py +++ b/MAFH2/MafhGameMenu.py @@ -7,7 +7,7 @@ class GameMenuHolder( GameEngineElement ): GameEngineElement.__init__(self, has_draw=True, has_event=False) self.menu = None self.callback = callback - self.background = DrawableObject([pygame.image.load(background).convert()]) + self.background = DrawableObject([pygame.image.load(background).convert()], '') self.background.scale(width, height) self.game_engine.get_scene().addObject(self.background) self.width = width diff --git a/MAFH2/fortuneengine/DrawableObject.py b/MAFH2/fortuneengine/DrawableObject.py index d0d17de..ace0e29 100644 --- a/MAFH2/fortuneengine/DrawableObject.py +++ b/MAFH2/fortuneengine/DrawableObject.py @@ -1,20 +1,18 @@ import pygame
class DrawableObject(pygame.sprite.Sprite):
- -# I removed the parameter for FPS, x and y velocities, and the text file reference -# since this is not a dynamic object - def __init__(self,images, x = 0, y = 0,):
+ def __init__(self,images, textfileName, x = 0, y = 0,):
pygame.sprite.Sprite.__init__(self)
- self._images = [] +
+ self._images = []
self._origImages = []
for i in range(len(images)):
self._images.append(images[i].convert())
self._origImages.append(images[i].convert())
- +
self._start = pygame.time.get_ticks()
- self.image = self._images[0] + self.image = self._images[0]
self._last_update = 0
self._frame = 0
self.animations = {}
@@ -26,11 +24,7 @@ class DrawableObject(pygame.sprite.Sprite): self.xSize = 40 # <--
self.ySize = 40 # <--
self.rect.topleft = (x,y)
-# -# Since there will be no animation in a static object I removed the code that -# read the animFile since it was an unecessary slowdown -# - """
+
if textfileName != '':
f = open(textfileName, 'r')
@@ -40,37 +34,31 @@ class DrawableObject(pygame.sprite.Sprite): animValues = currentLine.split(",")
self.animations[animValues[0]] = [int(animValues[1]), int(animValues[2])]
currentLine = f.readline()
- """
+
+ else:
+
+ self.animations["anim1"] = [0, len(self._images)]
+ self.goToAnim("anim1")
def addImages(self, images):
self._images.extend(images)
- #self._originals.extend(images)
+ self._origImages.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
+ self.image = self._images[self._frame]
+
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 +
+ 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))
@@ -81,10 +69,7 @@ class DrawableObject(pygame.sprite.Sprite): 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):
self.myAngle += angle
for i in range(len(self._images)):
@@ -92,15 +77,9 @@ class DrawableObject(pygame.sprite.Sprite): 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
+
def setPosition(self, x = None, y = None):
- if type(x).__name__=='int': self.xPos = x + if type(x).__name__=='int': self.xPos = x
if type(y).__name__=='int': self.yPos = y
self.rect.topleft = (self.xPos, self.yPos)
@@ -109,10 +88,7 @@ class DrawableObject(pygame.sprite.Sprite): 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))
setColorKey(myColorKey)
@@ -120,68 +96,12 @@ class DrawableObject(pygame.sprite.Sprite): 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):
pass
- -# -# removed current animation method -#
+
def nextFrame(self):
pass
def nextCurrentAnimFrame(self):
- pass - - - - - - - - - - - - - - - - - - - -# -# Removed this because it took into account the depreciated velocity concept that was -# contrary to the projected use of the drawable object -# This would be more useful in a Dynamic Drawable Object -# JT Jul 28 2010 -"""
- def move(self):
- self.xPos += self.xSpeed
- self.yPos += self.ySpeed
- self.rect.right += self.xSpeed
- self.rect.top += self.ySpeed
-""" - -# -# I removed velocity because a static object should not have variables pertaining to movement -# That is not instructed manually; velocity, being displacement over time, is easily perceived -# as an exaple of autonomous motion since it's dictated by the passage of time -# JT Jul 28 2010 -"""
- 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
-""" + pass
diff --git a/MAFH2/fortuneengine/DynamicDrawableObject.py b/MAFH2/fortuneengine/DynamicDrawableObject.py index 8d2737d..75277e5 100644 --- a/MAFH2/fortuneengine/DynamicDrawableObject.py +++ b/MAFH2/fortuneengine/DynamicDrawableObject.py @@ -11,63 +11,34 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite): 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 updateWithMovement(self, right, bottom): # causes objects to move and collide with walls
-
-# 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
- -#2345678911234567892123456789312345678941234567895123456789612345678971234567898 -
-# 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 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):
- def update(self, t): # just updates the frame / object
- ##print "Last update:", self._last_update,
-#getting the time since the last time I updated my frame and adding it to the time that I last updated my frame timePassed = t + self._last_update
- ##print " Time since:", timePassed, - -#checking if I am in the animation and putting me there if I am not
+
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]
self._frame += timePassed/self._delay
- ##print " On frame:", self._frame,"\n"
while self._frame >= self.animations.get(self._current_anim)[1]:
framesPast = self._frame - self.animations.get(self._current_anim)[1]
@@ -78,7 +49,7 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite): else:
self._last_update = timePassed
- def nextFrame(self): # push to next frame
+ def nextFrame(self):
self._frame += 1
if self._frame >= len(self._images):
framesPast = self._frame - len(self._images)
@@ -86,14 +57,14 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite): self.image = self._images[self._frame]
- def nextCurrentAnimFrame(self): # push to the next frame of curr animation
- + 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]:
@@ -101,5 +72,3 @@ class DynamicDrawableObject(DrawableObject, pygame.sprite.Sprite): self._frame = framesPast - 1 + self.animations[self._current_anim][0]
self.image = self._images[self._frame]
-
-# cnt = len(anmiations) <-- why was this here? diff --git a/MAFH2/fortuneengine/GameEngine.py b/MAFH2/fortuneengine/GameEngine.py index 4434af9..4d0503d 100644 --- a/MAFH2/fortuneengine/GameEngine.py +++ b/MAFH2/fortuneengine/GameEngine.py @@ -52,7 +52,7 @@ class GameEngine(object): self.height = height size = width, height self.screen = pygame.display.set_mode(size) - self.__scene = Scene(DrawableObject([pygame.Surface((1,1))])) + self.__scene = Scene(DrawableObject([pygame.Surface((1,1))]), '') # Engine Internal Variables self.__fps_cap = fps_cap |