comparison gamelib/animal.py @ 163:0d6e23dcd3af

fixed redrawing
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Thu, 03 Sep 2009 22:22:57 +0000
parents 9b4213f6ea7f
children 9ea53eb919cf
comparison
equal deleted inserted replaced
162:fa57868123d7 163:0d6e23dcd3af
59 elif self.facing == 'right': 59 elif self.facing == 'right':
60 self.setimage(self.image_right) 60 self.setimage(self.image_right)
61 61
62 def equip(self, item): 62 def equip(self, item):
63 self.equipment.append(item) 63 self.equipment.append(item)
64 self.redraw_equipment() 64 self.redraw()
65 65
66 def unequip(self, item): 66 def unequip(self, item):
67 self.equipment = [e for e in self.equipment if e != item] 67 self.equipment = [e for e in self.equipment if e != item]
68 self.redraw_equipment() 68 self.redraw()
69 69
70 def redraw_equipment(self): 70 def redraw(self):
71 self.image_left = self._image_left.copy()
72 self.image_right = self._image_right.copy()
71 self.equipment.sort(key=lambda x: x.DRAW_LAYER) 73 self.equipment.sort(key=lambda x: x.DRAW_LAYER)
72 for item in self.equipment: 74 for item in self.equipment:
73 self.draw_equipment(item) 75 self.draw_equipment(item)
76 self._set_image_facing(self.facing)
74 77
75 def draw_equipment(self, item): 78 def draw_equipment(self, item):
76 if not hasattr(self, 'EQUIPMENT_IMAGE_ATTRIBUTE'): 79 if not hasattr(self, 'EQUIPMENT_IMAGE_ATTRIBUTE'):
77 return 80 return
78 eq_image_attr = getattr(item, self.EQUIPMENT_IMAGE_ATTRIBUTE, 'None') 81 eq_image_attr = getattr(item, self.EQUIPMENT_IMAGE_ATTRIBUTE, 'None')
80 return 83 return
81 eq_image_left = imagecache.load_image(eq_image_attr) 84 eq_image_left = imagecache.load_image(eq_image_attr)
82 eq_image_right = imagecache.load_image(eq_image_attr, ("right_facing",)) 85 eq_image_right = imagecache.load_image(eq_image_attr, ("right_facing",))
83 self.image_left.blit(eq_image_left, (0, 0)) 86 self.image_left.blit(eq_image_left, (0, 0))
84 self.image_right.blit(eq_image_right, (0, 0)) 87 self.image_right.blit(eq_image_right, (0, 0))
85 self._set_image_facing(self.facing)
86 88
87 def weapons(self): 89 def weapons(self):
88 return [e for e in self.equipment if equipment.is_weapon(e)] 90 return [e for e in self.equipment if equipment.is_weapon(e)]
89 91
90 def covers(self, tile_pos): 92 def covers(self, tile_pos):