# HG changeset patch # User Stefano Rivera # Date 1359195041 -7200 # Node ID 64fe88a322d367e4a63465cc16b05646065354da # Parent f703bdce8c9e53472786f9972ceb1c26805fca1b Re-implement cursor highlighting using a Colour transformation diff -r f703bdce8c9e -r 64fe88a322d3 pyntnclick/cursor.py --- a/pyntnclick/cursor.py Sat Jan 26 11:27:02 2013 +0200 +++ b/pyntnclick/cursor.py Sat Jan 26 12:10:41 2013 +0200 @@ -9,6 +9,7 @@ import pygame.mouse from pyntnclick.engine import Screen +from pyntnclick.image_transforms import Colour class CursorSprite(Sprite): @@ -23,33 +24,23 @@ def load(self, resources): if not hasattr(self, 'plain_image'): + self.highlight_transform = Colour((255, 100, 100, 255)) self.plain_image = resources.get_image('items', self.filename) - self.image = self.plain_image - self.rect = self.image.get_rect() - + self.highlighted_image = resources.get_image('items', self.filename, + transforms=(self.highlight_transform,)) + self.rect = self.plain_image.get_rect() if self.pointer_x is None: self.pointer_x = self.rect.size[0] // 2 if self.pointer_y is None: self.pointer_y = self.rect.size[1] // 2 - self.highlight = pygame.Surface(self.rect.size) - color = pygame.color.Color(255, 100, 100, 0) - self.highlight.fill(color) - def update(self): pos = pygame.mouse.get_pos() self.rect.left = pos[0] - self.pointer_x self.rect.top = pos[1] - self.pointer_y def set_highlight(self, enable): - # XXX: Use image transforms and such here. - if enable != self.highlighted: - #XXX: Do we need this? self.load() - self.highlighted = enable - self.image = self.plain_image.copy() - if enable: - self.image.blit(self.highlight, self.highlight.get_rect(), - None, pygame.BLEND_MULT) + self.image = self.highlighted_image if enable else self.plain_image HAND = CursorSprite('hand.png', 12, 0)