diff options
Diffstat (limited to 'AnimatedSprite.py')
-rw-r--r-- | AnimatedSprite.py | 16 |
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__": |