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: