diff options
author | Sin Nombre <sin@ubuntu.(none)> | 2010-05-28 20:45:29 (GMT) |
---|---|---|
committer | Sin Nombre <sin@ubuntu.(none)> | 2010-05-28 20:45:29 (GMT) |
commit | 9e93d1b9802385900b6f833f81f84c0ac50f91ef (patch) | |
tree | f2c16599bde31b31e5d44bae4a87e7e4093f3cab /olpcgames/textsprite.py | |
parent | ac8cbb6691ba3de1c7c42f4362edbe11270f4506 (diff) |
Diffstat (limited to 'olpcgames/textsprite.py')
-rwxr-xr-x | olpcgames/textsprite.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/olpcgames/textsprite.py b/olpcgames/textsprite.py new file mode 100755 index 0000000..7663630 --- /dev/null +++ b/olpcgames/textsprite.py @@ -0,0 +1,40 @@ +"""Simple Sprite sub-class that renders via a PangoFont""" +from pygame import sprite +from olpcgames import pangofont + +class TextSprite( sprite.Sprite ): + """Sprite with a simple text renderer""" + image = rect = text = color = background = None + def __init__( self, text=None, family=None, size=None, bold=False, italic=False, color=None, background=None ): + super( TextSprite, self ).__init__( ) + self.font = pangofont.PangoFont( family=family, size=size, bold=bold, italic=italic ) + self.set_color( color ) + self.set_background( background ) + self.set_text( text ) + def set_text( self, text ): + """Set our text string and render to a graphic""" + self.text = text + self.render( ) + def set_color( self, color =None): + """Set our rendering colour (default white)""" + self.color = color or (255,255,255) + self.render() + def set_background( self, color=None ): + """Set our background color, default transparent""" + self.background = color + self.render() + def render( self ): + """Render our image and rect (or None,None) + + After a render you will need to move the rect member to the + correct location on the screen. + """ + if self.text: + self.image = self.font.render( self.text, color = self.color, background = self.background ) + currentRect = self.rect + self.rect = self.image.get_rect() + if currentRect: + self.rect.center = currentRect.center + else: + self.rect = None + self.image = None |