from events import TIMEOUT
from itertools import cycle
-class WarpingCursor(pygame.sprite.Sprite, EventHandlerMixin):
+class WarpingCursor(pygame.sprite.DirtySprite, EventHandlerMixin):
'''
The class for animating the warping cursor
'''
def __init__(self, theme='black', duration=50, blinkMode=True):
- pygame.sprite.Sprite.__init__(self)
+ pygame.sprite.DirtySprite.__init__(self)
pygame.mouse.set_visible(False)
imagesPath, images = WarpingCursor._get_theme_images(theme)
flashImage = images.pop(images.index('flash.png'))
@event_handler(TIMEOUT)
def loadNext(self, event) :
if self._blinking :
+ self.dirty = 1
self.image = self.iterator.next()
@event_handler(pygame.MOUSEBUTTONDOWN)
def flashOn(self, event) :
+ self.dirty = 1
self._blinking = False
self.image = self.flashImage
@event_handler(pygame.MOUSEBUTTONUP)
def flashOff(self, event) :
+ self.dirty = 1
if self.blinkMode :
self._blinking = True
self.loadNext(event)
@event_handler(pygame.MOUSEMOTION)
def move(self, event) :
+ self.dirty = 1
self.rect.move_ip(event.rel)