2017-01-17 7 views
0

私はPython上でpygameを使用してゲームを作成していますが、ユーザーがYesまたはNo Decisionを行うことを許可しようとしていますが、私のループを入力してください: "ユーザーがYes/Noの決定を下せるようにする方法

シェルでエラーメッセージを作成せず、私がしたいことをするのではなく、私がプレススペース、他の何も何もしていないようです。ここで

はY/N関数を呼び出す関数です:

if SwordCheck == None: 
    dispOnTextBox("You don't have", 'anything to buy.', '') 
elif SwordCheck == False: 
    displayMoney(Kelts, Parts, Shreds) 
    dispOnTextBox('Do you want to', 'purchase that?', "it's 200 kelts") 
    VALUE = waitForYNDecision() 
    if VALUE == None: 
     pygame.display.update() 
     FPSCLOCK.tick() 
    elif VALUE == False: 
     dispOnTextBox('No? Ok, but please', 'put it back when', "you are done") 
     return False 
    elif VALUE == True: 
     dispOnTextBox('Alright! here you', 'go. Thank you', 'for your purchase') 
     return True 

そして、ここではY/Nの関数である。

print 'CHOOSE Y/N with Up = Yes and Down = No' 
for event in pygame.event.get(): 
    if event.type == QUIT: 
     terminate() 
    elif event.type == KEYDOWN: 
     if event.key in (K_W, K_KP8): 
      return True 
     elif event.key in (K_S, K_KP5): 
      return False 
return None 

私は他のすべての機能をテストし、その唯一ましたこれらには問題があります。私はこれにアマチュアであり、良い答えを感謝します。

+0

pygameのは、シェルからイベントを受信しない場合、私はわからないんだけど、すぐにそれを行うには - あなたをパイゲームウィンドウのボタンを押したときにだけそれを得ることができます。したがって、pygameウィンドウを使用する必要がある場合、 'print()'を使用してメッセージを表示する意味がありません。 – furas

+1

BTW: 'CamelCase'名はクラスにのみ使用し、' UPPER_CASE'は定数の名前だけを使用します。変数と関数には 'lower_case'という名前を使用します。 – furas

+0

BTW: 'for event'はコードをブロックせず、あなたのキーを待つこともなく、より速く実行されてからボタンを押すと思っています。これを 'true 'に入れて、押されたキーをキャッチする必要があります。 – furas

答えて

0

そのユーザーを期待することは、それだけでしばらくそれを入れていない場合は、この意向はなく、真のループ

関連する問題