2016-07-08 10 views
0

私は作成中のゲームでスコアボードに取り組んでいますが、キーが押されたかどうかを確認する方法は分かっていますが、WHICHキーが押されたことを確認する方法はあります。キーを押して文字列に追加しますか? 編集:はい、わかりませんでした:hやtのようなボタンが押されているかどうかを確認できますが、ただちにボタンを押してそれを文字列に追加する方法が欲しいです。アルファベットのすべての文字のイベント関数を作成します。pygameはどのキーが押されたかを検出します

答えて

0

キーが押されたときに検出するコールバックを登録している場合、キーのIDはコールバックのサービスルーチンに渡される構造体に含まれます。

これは「キーボードコード」とキーのプレーンジェーンASCII値を提供するかどうかはわかりません。

0

単純なテキスト入力が必要な場合(たとえば、ユーザーがハイスコアの名前を入力する必要がある場合)は、EzTextライブラリを参照してください。

一般に、どのキーが押されたかは2通りの方法で確認できます。あなたがイベントキューを使用する場合は

は、あなたはpygameのキーコードに対してevent.keyを確認することができます。

import pygame 

pygame.init() 
screen = pygame.display.set_mode((500, 500)) 
done = False 

while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 

     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_SPACE: 
       print("spacebar was pressed") 
      if event.key == pygame.K_q: 
       done = True 

pygame.quit() 

すべてのキーコードはthe documentationに記載されています。これにより、1回のキーが押されている時間に関係なく、すべてのキーを押すたびに1つのイベントが発生します。キーは長く押されている場合、これは、多くのイベントを発生することを

import pygame 

pygame.init() 
screen = pygame.display.set_mode((500, 500)) 
done = False 

while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 

    state = pygame.key.get_pressed() 
    if state[pygame.K_SPACE]: 
     print("spacebar was pressed") 
    if state[pygame.K_q]: 
     done = True 

pygame.quit() 

お知らせ:

また、あなたは状態のチェックを使用することができます。キーが押されていて、プログラムがキー押下をチェックする以外に何かをしているときにキーが押されているときに、キーが押されないこともあります。

関連する問題