Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/AnimatedSprite.py
diff options
context:
space:
mode:
Diffstat (limited to 'AnimatedSprite.py')
-rw-r--r--AnimatedSprite.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/AnimatedSprite.py b/AnimatedSprite.py
index 48a5236..76960c8 100644
--- a/AnimatedSprite.py
+++ b/AnimatedSprite.py
@@ -35,6 +35,7 @@ class AnimatedSprite(pygame.sprite.Sprite):
self.move = 0
self.image = self._images[self._frames[self._frame]]
+ (self.width, self.height) = self.image.get_size() # assuming same size 4 all
# self.update(pygame.time.get_ticks())
@@ -51,7 +52,10 @@ class AnimatedSprite(pygame.sprite.Sprite):
screen.blit(self.image, (self.x, self.y))
def do_move(self, grid):
- pass
+ # by default, update according to sequence, override for more complex stuff
+ self.x += self._dxs[self._frame]
+ self.y += self._dys[self._frame]
+ self._frame = self._next_frames[self._frame]
def update_frame(self, fr):
self._frame = fr
@@ -60,11 +64,17 @@ class AnimatedSprite(pygame.sprite.Sprite):
self.move = move
def upper_left_tile(self):
- return ( (self.x+34)/50, (self.y+16)/50 )
+ return ( self.x/50, self.y/50 )
def draw_rect(self, screen):
- pygame.draw.rect(screen,(0,0,0),(self.x+15, self.y+38, 38, 38),1)
+ pygame.draw.rect(screen,(0,0,0),self.collision_rect(),1)
+ def collision_rect(self):
+ # by default use the same as image, override for more accurate collisions
+ return self.rect()
+
+ def rect(self):
+ return (self.x, self.y, self.width, self.height)
if __name__ == "__main__":