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
私は他のすべての機能をテストし、その唯一ましたこれらには問題があります。私はこれにアマチュアであり、良い答えを感謝します。
pygameのは、シェルからイベントを受信しない場合、私はわからないんだけど、すぐにそれを行うには - あなたをパイゲームウィンドウのボタンを押したときにだけそれを得ることができます。したがって、pygameウィンドウを使用する必要がある場合、 'print()'を使用してメッセージを表示する意味がありません。 – furas
BTW: 'CamelCase'名はクラスにのみ使用し、' UPPER_CASE'は定数の名前だけを使用します。変数と関数には 'lower_case'という名前を使用します。 – furas
BTW: 'for event'はコードをブロックせず、あなたのキーを待つこともなく、より速く実行されてからボタンを押すと思っています。これを 'true 'に入れて、押されたキーをキャッチする必要があります。 – furas