From 392a0c5a4d19da8f06b3ccab8b9d7fdcd558e64d Mon Sep 17 00:00:00 2001 From: Brian Jordan Date: Fri, 27 Jun 2008 18:17:45 +0000 Subject: Initial commit --- (limited to 'olpcgames/textsprite.py') 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 -- cgit v0.9.1