changeset 255:8bd442fa89ad

Render dialog on screen instead of printing to console.
author Simon Cross <hodgestar@gmail.com>
date Fri, 08 Apr 2011 00:57:06 +0200
parents 0f502ac5b9e0
children e43e66f3f647
files skaapsteker/widgets/bubble.py
diffstat 1 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/skaapsteker/widgets/bubble.py	Fri Apr 08 00:45:33 2011 +0200
+++ b/skaapsteker/widgets/bubble.py	Fri Apr 08 00:57:06 2011 +0200
@@ -1,8 +1,10 @@
 """Widget for in-level dialogue / speech bubbles."""
 
 from pygame.locals import (KEYDOWN, K_UP, K_p, K_q, K_x, K_z, K_RETURN)
+import pygame
 
 from ..engine import OpenDialog, CloseDialog
+from .text import Text
 
 
 class DialogueWidget(object):
@@ -10,11 +12,28 @@
     def __init__(self, npc):
         self.npc = npc
         self.dsm = npc.dsm
+        self._text = None
+        self._update_text()
+
+    def _update_text(self):
+        state = self.dsm.get_state()
+        if state.text:
+            text = "\n".join([
+                state.text,
+                "",
+                "Press RETURN to continue."
+                ])
+            pos = pygame.Rect((0, 0), (300, 1))
+            self._text = Text(text, pos, wrap=True)
+        else:
+            self._text = None
         print self.dsm.get_state().text
         print "Press RETURN to continue."""
 
     def draw(self, level_surface):
-        pass
+        if self._text:
+            self._text.rect.center = level_surface.get_clip().center
+            self._text.draw(level_surface)
 
     def close(self):
         pass