Mercurial > boomslang
comparison gamelib/cursor.py @ 172:3b5cfb3f794e
Ensure cursor loaded when calling set_highlight
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Wed, 25 Aug 2010 13:12:14 +0200 |
parents | a1162ea4ad67 |
children | fbfd8e748ac0 |
comparison
equal
deleted
inserted
replaced
171:a1162ea4ad67 | 172:3b5cfb3f794e |
---|---|
16 def __init__(self, filename, x, y): | 16 def __init__(self, filename, x, y): |
17 Sprite.__init__(self) | 17 Sprite.__init__(self) |
18 self.filename = filename | 18 self.filename = filename |
19 self.pointer_x = x | 19 self.pointer_x = x |
20 self.pointer_y = y | 20 self.pointer_y = y |
21 self.highlighted = False | |
21 | 22 |
22 def load(self): | 23 def load(self): |
23 if not hasattr(self, 'plain_image'): | 24 if not hasattr(self, 'plain_image'): |
24 self.plain_image = get_image('items', self.filename) | 25 self.plain_image = get_image('items', self.filename) |
25 self.image = self.plain_image | 26 self.image = self.plain_image |
26 self.rect = self.image.get_rect() | 27 self.rect = self.image.get_rect() |
27 self.highlight = pygame.Surface(self.rect.size) | 28 self.highlight = pygame.Surface(self.rect.size) |
28 color = pygame.color.Color(255, 100, 100, 0) | 29 color = pygame.color.Color(255, 100, 100, 0) |
29 self.highlight.fill(color) | 30 self.highlight.fill(color) |
30 self.highlighted = False | |
31 | 31 |
32 def update(self): | 32 def update(self): |
33 pos = pygame.mouse.get_pos() | 33 pos = pygame.mouse.get_pos() |
34 self.rect.left = pos[0] - self.pointer_x | 34 self.rect.left = pos[0] - self.pointer_x |
35 self.rect.top = pos[1] - self.pointer_y | 35 self.rect.top = pos[1] - self.pointer_y |
36 | 36 |
37 def set_highlight(self, enable): | 37 def set_highlight(self, enable): |
38 if not hasattr(self, 'plain_image'): | |
39 # do nothing if we're not loaded yet | |
40 return | |
41 if enable != self.highlighted: | 38 if enable != self.highlighted: |
39 self.load() | |
42 self.highlighted = enable | 40 self.highlighted = enable |
43 self.image = self.plain_image.copy() | 41 self.image = self.plain_image.copy() |
44 if enable: | 42 if enable: |
45 self.image.blit(self.highlight, self.highlight.get_rect(), | 43 self.image.blit(self.highlight, self.highlight.get_rect(), |
46 None, pygame.BLEND_MULT) | 44 None, pygame.BLEND_MULT) |