2017-07-03 9 views
-3

を押すと、必ずプログラムはいくつかのエラーを示していることは私のコードです:私がSPACEを押すたびに、新しいパイゲームウィンドウがポップアップします。しかし、私はここSPACE

import pygame, pygame.font, pygame.event, pygame.draw, string 
from pygame.locals import * 

counter = 0 


def get_key(): 
    global counter 
    while 1: 
     event = pygame.event.poll() 
     if event.type == KEYDOWN: 
      return event.key 
     else: 
      pass 


def display_box(screen, message): 
    global counter 
    "Print a message in a box in the middle of the screen" 
    fontobject = pygame.font.Font(None, 18) 
    pygame.draw.rect(screen, (255, 255, 255), 
        ((screen.get_width()/2) - 100, 
         (screen.get_height()/2) - 10, 
         200, 20), 1) 
    pygame.draw.rect(screen, (0, 0, 0), 
        ((screen.get_width()/2) - 102, 
         (screen.get_height()/2) - 12, 
         204, 24), 1) 
    if len(message) != 0: 
     screen.blit(fontobject.render(message, 1, (255, 255, 255)), 
        ((screen.get_width()/2) - 100, (screen.get_height()/2) - 10)) 
    pygame.display.flip() 


def ask(screen): 
    global counter 
    str_counter = str(counter) 
    "ask(screen, question) -> answer" 
    pygame.font.init() 
    current_string = [] 
    display_box(screen, "comment" + ": " + string.join(current_string, "")) 
    while 1: 
     inkey = get_key() 
     if inkey == K_BACKSPACE: 
      current_string = current_string[0:-1] 
     elif inkey == K_RETURN: 
      break 
     elif inkey == K_SPACE: 

      screen = screen + str_counter 
      counter = counter + 1 

     elif inkey <= 127: 
      current_string.append(chr(inkey)) 
     display_box(screen, "comment" + ": " + string.join(current_string, "")) 
    return string.join(current_string, "") 


def main(): 
    global counter 
    screen = pygame.display.set_mode((300, 100)) 
    print ask(screen) 


if __name__ == '__main__': main() 
+1

Spaceキーを押したときに何のエラーが発生していますか?人々があなたの問題を手伝うことができるように、それを投稿に追加すると便利です。 – bouteillebleu

+0

トレースバック(最新の呼び出しの最後): で ファイル "/home/rahul/PycharmProjects/Screenshots/tesssst.py"、ライン62、__name__ == '__main__' の場合:メイン() ファイル「/ホーム/ラーフル/home/rahul/PickarmProjects/Screenshots/tesssst.py "、行49、 印刷ask(画面) ファイル" /home/rahul/PycharmProjects/Screenshots/tesssst.py "、49行目でask screen = screen + str_counter TypeError:+: 'pygame.Surface'と 'str'のためのサポートされていないオペランドタイプ –

+0

スクリーン(pygame.Surface)とカウンタ(文字列)を "追加"しようとすると、 – Foon

答えて

1

あなたがされるエラーがしようとしている、あなたは操作画面=画面+ str_counterを行っているライン49で原因であります一緒に追加することはできないpygame.Surfaceオブジェクトと文字列オブジェクトを追加します。

さらに、複数のウィンドウを同時に実行することができるように、パイグムは定期的に構築されていません。複数のウィンドウをパイグラムで動作させたい場合は、マルチプロセッシングやpygletやcocos2dなどの複数のウィンドウを実行できる他のモジュールを使用する必要があります。

関連する問題