2016-08-06 18 views
-1

python 3.3用にpygame 1.9.2をダウンロードしましたが、​​関数が機能しません。 IDLEシェルは、私に同じエラーを伝え続けています:Keydown関数が機能しない

NameError: name 'KEYDOWN' is not defined 

どのようにこの問題を解決できますか?私はプログラミングにちょっと新しいので、これを私に説明してください。

+0

あなたは最初にこれを追加することができます。pygame.localsから は*の – LychmanIT

+0

可能な重複インポート[NameError:名「KEYDOWN」が定義されていません](http://stackoverflow.com/questions/17556426/nameerror-name -keydown-is-not-defined) – SiHa

答えて

1

注:前回の回答を削除して申し訳ありませんが、スタックオーバーフローはランダムに投稿されました。

まあ、いくつか間違っている可能性があります。 pygame.key.keydown()を使用している可能性があります。間違っています。pygame.key.get_pressed()を使用してください。 しかし、あなたのコードに間違っていると思われるのは、pygame.KEYDOWNを正しく使用していないということです。

あなたはキーが押されている間、何かをpygame.key.get_pressed()を使用しており、このような何かをしようとしている場合:

key = pygame.key.get_pressed() 
if key[pygame.K_WHATEVER_KEY_YOU_WANT]: 
    # do code 

をし、ちょうどあなたがチェックしたいすべてのキーのためにそれを繰り返します。

したいキーが入れ子になったに押されている場合、あなただけのキーが押されているかどうかを確認しようとしている場合は、if文でpygame.KEYDOWNを使用し、その後、チェックif文下の文最初の場合。これと同じように:

if event.type == pygame.KEYDOWN: 
    if event.key == pygame.K_WHATEVER_KEY_YOU_WANT: 
     #do code 

私はあなたのイベントを「取得」というpygame.event.get()以上の機能を反復するために使用して、イベント変数を持っていると仮定しています。そうでない場合は、その後、ここでのコードゲーム/ウィンドウループにの上にある:

running = True # variable to control while loop 

while running: # while the variable running is equal to true 
    for event in pygame.event.get(): # use the variable 'event' to iterate over user events 
     if event.type == pygame.QUIT: # test if the user is trying to close the window 
      running = False # break the loop if the user is trying to close the window 
      pygame.quit() # de-initialize pygame module 
      quit() # quit() the IDE shell 

     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_WHATEVER_KEY_YOU_WANT: 
       #do code 

これはpygame.KEYDOWNを使用する方法は基本的です。それはおそらく唯一の方法ではないでしょう。 pygameのキー入力をチェックする方法については、公式サイトのpygame docsを読むことをお勧めします(プログラミング初心者ですので)。そして、この質問にanswersの一部を読んでください。

関連する問題