Mercurial > skaapsteker
diff skaapsteker/sprites/base.py @ 122:51bcc909873d
Saner, buggier collision rectangles
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Mon, 04 Apr 2011 22:39:42 +0200 |
parents | b361d9e17c26 |
children | e1dd3b785269 |
line wrap: on
line diff
--- a/skaapsteker/sprites/base.py Mon Apr 04 22:37:59 2011 +0200 +++ b/skaapsteker/sprites/base.py Mon Apr 04 22:39:42 2011 +0200 @@ -27,6 +27,7 @@ self.image = data.load_image('sprites/' + self.image_file) self.starting_tile_pos = pos self.rect = self.image.get_rect(topleft=(pos[0]*TILE_SIZE[0], pos[1]*TILE_SIZE[1])) + self.collide_rect = self.image.get_rect(topleft=(pos[0]*TILE_SIZE[0], pos[1]*TILE_SIZE[1])) self._layer = Layers.PLAYER self.setup(**opts) @@ -57,7 +58,11 @@ Sprite.__init__(self) self.tile_pos = pos self.image = image - self.rect = Rect((pos[0] * TILE_SIZE[0], pos[1] * TILE_SIZE[1]), TILE_SIZE) + self.collide_rect = self.image.get_bounding_rect(1) + self.rect = self.image.get_rect() + self.rect_offset = self.collide_rect.left - self.rect.left, self.rect.top - self.rect.top + self.collide_rect.topleft = pos[0] * TILE_SIZE[0] + self.rect_offset[0], pos[1] * TILE_SIZE[1] + self.rect_offset[1] + self.rect.topleft = pos[0] * TILE_SIZE[0], pos[1] * TILE_SIZE[1] def get_debug_color(self): if self.floor or self.block: