annotate gamelib/cursor.py @ 66:05346a412b55

A sprite cursor attempt
author Stefano Rivera <stefano@rivera.za.net>
date Mon, 23 Aug 2010 19:50:45 +0200
parents
children 213e47dea4d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
1 # cursor.py
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
2 # Copyright Boomslang team, 2010 (see COPYING File)
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
3 # Sprite Cursor
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
4
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
5 from albow.screen import Screen
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
6 from albow.resource import get_image
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
7 import pygame.mouse as mouse
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
8 from pygame.sprite import Sprite, RenderUpdates
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
9
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
10 class CursorSprite(Sprite):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
11 "A Sprite that follows the Cursor"
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
12
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
13 def __init__(self, filename):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
14 Sprite.__init__(self)
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
15 self.image = get_image('items', filename + '.png')
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
16 self.rect = self.image.get_rect()
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
17
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
18 def update(self):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
19 self.rect.midtop = mouse.get_pos()
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
20
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
21
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
22 class CursorSpriteScreen(Screen):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
23 "A Screen with a CursorSprite"
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
24
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
25 def __init__(self, shell):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
26 Screen.__init__(self, shell)
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
27
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
28 sprite = CursorSprite('hand')
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
29 self.cursor_group = RenderUpdates(sprite)
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
30
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
31 def draw(self, surface):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
32 self.cursor_group.update()
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
33 self.cursor_group.draw(surface)
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
34
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
35 def mouse_move(self, event):
05346a412b55 A sprite cursor attempt
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
36 self.invalidate()