2011-06-19 22 views
3

私は自分のRPGにTextBox/MessageBox/StatusBoxなどを作成する必要があります。私はテキストボックス クラスを作成しましたが、動作しないようです。それは表面をブリットしますが、テキストを表示しません。RPGのpygameでTextBox/Status Boxを作成するには?

CODE:

class TextBox(pygame.sprite.Sprite): 
    def __init__(self): 
     pygame.sprite.Sprite.__init__(self) 
     self.initFont() 
     self.initImage() 
     self.initGroup() 
     self.setText(['a','b']) 

    def initFont(self): 
     pygame.font.init() 
     self.font = pygame.font.Font(None,3) 

    def initImage(self): 
     self.image = pygame.Surface((200,80)) 
     self.image.fill((255,255,255)) 
     self.rect = self.image.get_rect() 
     self.rect.center = (0,0)   

    def setText(self,text): 
     tmp = pygame.display.get_surface() 
     x_pos = self.rect.left+5 
     y_pos = self.rect.top+5 

     for t in text: 
      x = self.font.render(t,False,(0,0,0)) 
      tmp.blit(x,(x_pos,y_pos)) 
      x_pos += 10 

      if (x_pos > self.image.get_width()-5): 
       x_pos = self.rect.left+5 
       y_pos += 10 

    def initGroup(self): 
     self.group = pygame.sprite.GroupSingle() 
     self.group.add(self) 
+0

あなた自身の質問に対する回答が見つかった場合は、それを回答として投稿する必要があります。回答としてマークすることができます。質問をしてから24時間待たなければならないと思います。 – mgiuca

+0

申し訳ありません。私はそれをするつもりだったが、24時間待たなければならなかったので、私は代わりに編集をした。それは今終わった。 – ApprenticeHacker

+0

Cool。また、あなた自身の質問にチェックを入れることもできます。 ;) – mgiuca

答えて

3

ウンム申し訳ありません。気にしないで。私は自分自身で問題を発見した。私が書いた:それはとにかく

self.rect.top = 0 ; self.rect.left = 0 

感謝をされている必要があります

self.rect.center = (0,0) 

。 :D

+6

使用: 'self.rect.topleft =(0、0)' – ninMonkey

関連する問題