トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mask || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform
pygame.key
    キーボードの処理をするpygameモジュールです。

      pygame.key.get_focused - ウィンドウがキーボードの入力情報を受け取れる状態であればtrueが戻り値として返されます。
      pygame.key.get_pressed - 全てのキーの入力状態を取得します。
      pygame.key.get_mods - どの修飾キーが押されているかを判別します。
      pygame.key.set_mods - 一時的に特定の修飾キーが押された状態に設定します。
      pygame.key.set_repeat - キーを押しっぱなしにした場合の繰り返し入力について設定します。
      pygame.key.get_repeat - キーを押しっぱなしにした場合の繰り返し入力について確認します。
      pygame.key.name - キーを特定するための名前を取得します。

    このモジュールにはキーボードを操作する機能があります。

    キーボードのボタンを押して離すと、イベントキューにpygame.KEYDOWNイベントとpygame.KEYUPイベントが取得されます。取得された各イベントは、キーボードの各キーを表す数値情報を持っています。

    pygame.KEYDOWNイベントはさらにユニコードとスキャンコードに関する情報を持っています。ユニコード情報は入力されたキーを文字に変換した値を表します。これはshiftキーと別のキーを同時押しするような場合も考慮されてます。スキャンコード情報はユーザーが使用するキーボード環境固有のキーコードを表します。取得されるスキャンコードは使用されるキーボードによって変わることがありますが、マルチメディアキーボードのように普通とは違った配列のキー環境で入力キーを特定する場合に便利です。

    Pygameには入力キーを識別するための多くのキーボード定数があり、 それらを使用してキーボードのどのキーが押されたかを特定します。下記がキーボード定数の一覧です。

          KeyASCII      ASCII   Common Name
          K_BACKSPACE         backspace
          K_TAB         	      tab
          K_CLEAR               clear
          K_RETURN      
          return
          K_PAUSE               pause
          K_ESCAPE      ^[      escape
          K_SPACE               space
          K_EXCLAIM     !       exclaim
          K_QUOTEDBL    "       quotedbl
          K_HASH        #       hash
          K_DOLLAR      $       dollar
          K_AMPERSAND   &       ampersand
          K_QUOTE               quote
          K_LEFTPAREN   (       left parenthesis
          K_RIGHTPAREN  )       right parenthesis
          K_ASTERISK    *       asterisk
          K_PLUS        +       plus sign
          K_COMMA       ,       comma
          K_MINUS       -       minus sign
          K_PERIOD      .       period
          K_SLASH       /       forward slash
          K_0           0       0
          K_1           1       1
          K_2           2       2
          K_3           3       3
          K_4           4       4
          K_5           5       5
          K_6           6       6
          K_7           7       7
          K_8           8       8
          K_9           9       9
          K_COLON       :       colon
          K_SEMICOLON   ;       semicolon
          K_LESS        <       less-than sign
          K_EQUALS      =       equals sign
          K_GREATER     >       greater-than sign
          K_QUESTION    ?       question mark
          K_AT          @       at
          K_LEFTBRACKET [       left bracket
          K_BACKSLASH   \       backslash
          K_RIGHTBRACKET ]      right bracket
          K_CARET       ^       caret
          K_UNDERSCORE  _       underscore
          K_BACKQUOTE   `       grave
          K_a           a       a
          K_b           b       b
          K_c           c       c
          K_d           d       d
          K_e           e       e
          K_f           f       f
          K_g           g       g
          K_h           h       h
          K_i           i       i
          K_j           j       j
          K_k           k       k
          K_l           l       l
          K_m           m       m
          K_n           n       n
          K_o           o       o
          K_p           p       p
          K_q           q       q
          K_r           r       r
          K_s           s       s
          K_t           t       t
          K_u           u       u
          K_v           v       v
          K_w           w       w
          K_x           x       x
          K_y           y       y
          K_z           z       z
          K_DELETE              delete
          K_KP0                 keypad 0
          K_KP1                 keypad 1
          K_KP2                 keypad 2
          K_KP3                 keypad 3
          K_KP4                 keypad 4
          K_KP5                 keypad 5
          K_KP6                 keypad 6
          K_KP7                 keypad 7
          K_KP8                 keypad 8
          K_KP9                 keypad 9
          K_KP_PERIOD   .       keypad period
          K_KP_DIVIDE   /       keypad divide
          K_KP_MULTIPLY *       keypad multiply
          K_KP_MINUS    -       keypad minus
          K_KP_PLUS     +       keypad plus
          K_KP_ENTER    
          keypad enter
          K_KP_EQUALS   =       keypad equals
          K_UP                  up arrow
          K_DOWN                down arrow
          K_RIGHT               right arrow
          K_LEFT                left arrow
          K_INSERT              insert
          K_HOME                home
          K_END                 end
          K_PAGEUP              page up
          K_PAGEDOWN            page down
          K_F1                  F1
          K_F2                  F2
          K_F3                  F3
          K_F4                  F4
          K_F5                  F5
          K_F6                  F6
          K_F7                  F7
          K_F8                  F8
          K_F9                  F9
          K_F10                 F10
          K_F11                 F11
          K_F12                 F12
          K_F13                 F13
          K_F14                 F14
          K_F15                 F15
          K_NUMLOCK             numlock
          K_CAPSLOCK            capslock
          K_SCROLLOCK           scrollock
          K_RSHIFT              right shift
          K_LSHIFT              left shift
          K_RCTRL               right ctrl
          K_LCTRL               left ctrl
          K_RALT                right alt
          K_LALT                left alt
          K_RMETA               right meta
          K_LMETA               left meta
          K_LSUPER              left windows key
          K_RSUPER              right windows key
          K_MODE                mode shift
          K_HELP                help
          K_PRINT               print screen
          K_SYSREQ              sysrq
          K_BREAK               break
          K_MENU                menu
          K_POWER               power
          K_EURO                euro
    

    またPygameには修飾キーの入力状態を表す値もあり、それを下記の修飾キー定数と論理和で組み合わせることで入力状態を確認できます。

          KMOD_NONE, KMOD_LSHIFT, KMOD_RSHIFT, KMOD_SHIFT, KMOD_CAPS,
          KMOD_LCTRL, KMOD_RCTRL, KMOD_CTRL, KMOD_LALT, KMOD_RALT,
          KMOD_ALT, KMOD_LMETA, KMOD_RMETA, KMOD_META, KMOD_NUM, KMOD_MODE
    


    pygame.key.get_focused
      ウィンドウがキーボードの入力情報を受け取れる状態であればtrueが戻り値として返されます。
      pygame.key.get_focused(): return bool

      ウィンドウがキーボードからの入力情報を受け取れる状態であればtrueが戻り値として返されます。ウィンドウが常にキーボード入力情報を受け取れる状態にするためには、pygame.event.set_grab命令を使用してコンピューターの全ての入力処理を独占的に確保する必要があります。



    pygame.key.get_pressed
      全てのキーの入力状態を取得します。
      pygame.key.get_pressed(): return bools

      全てのキーの入力状態を表すboolean型の配列を戻り値として返します。キーボード定数を配列の添え字として使用してください。指定した位置の値がTrueだった場合は、そのキーボード定数に該当するキーが押されたことになります。

      この命令を使うと入力されたキー一覧を取得することができますが、ユーザーのテキスト入力を処理する場合にこの命令を使うのは止めたほうがいいでしょう。この命令ではキーの押された順番まではわかりませんし、pygame.key.get_pressed命令が実行されるまでの間隔に高速でキーを入力されてしまうと入力情報を読み取ることができないのです。 この命令で取得できる入力キー情報を使ってユーザーからの文章入力処理を実装することはできないでしょう。もし実装したいのであれば、イベントキューに送られるpygame.KEYDOWNイベントを参照してください。



    pygame.key.get_mods
      どの修飾キーが押されているかを判別します。
      pygame.key.get_mods(): return int

      入力されている全ての修飾キーの状態をビットマスクで表した値を取得します。得られたビットマスクをビット演算子で処理することで、shiftキーやcapslockキー、それ以外のどのキーが押されたかを調べることができます。

      使用例
       #右のshiftキーが押された場合
       if mods & KMOD_LSHIFT:
      
       #shiftーが押された場合
       if mods & KMOD_SHIFT:
      
       #shiftーとctrlキーが押された場合
       if mods & KMOD_SHIFT and  mods & KMOD_CTRL:
      


    pygame.key.set_mods
      一時的に特定の修飾キーが押された状態に設定します。
      pygame.key.set_mods(int): return None

      特定の修飾キーが押された状態のビットマスクをプログラムに設定します。



    pygame.key.set_repeat
      キーを押しっぱなしにした場合の繰り返し入力について設定します。
      pygame.key.set_repeat(): return None
      pygame.key.set_repeat(delay, interval): return None

      キーリピートが有効になっている場合、キーが押しっぱなしの状態だと何度も pygame.KEYDOWNイベントが発生します。 delay引数は押しっぱなし状態でpygame.KEYDOWNが発生する間隔をミリ秒単位で表した数値です。 After that another pygame.KEYDOWN will be sent every interval milliseconds.引数を設定しなかった場合、キーリピート設定は無効になります。

      pygameが初期化される際、キーリピート機能は無効に設定されます。



    pygame.key.get_repeat
      キーを押しっぱなしにした場合の繰り返し入力について確認します。
      pygame.key.get_repeat(): return (delay, interval)

      キーリピートが有効になっている場合、キーが押しっぱなしの状態だと何度も pygame.KEYDOWNイベントが発生します。delay引数は押しっぱなし状態でpygame.KEYDOWNが発生する間隔をミリ秒単位で表した数値です。 After that another pygame.KEYDOWN will be sent every interval milliseconds.

      pygameが初期化される際、キーリピート機能は無効に設定されます。

      この命令はpygameのバージョン1.8で新たに実装されました。



    pygame.key.name
      キーを特定するための名前を取得します。
      pygame.key.name(key): return string)

      引数として渡したキーボード定数から、キーを特定するための名前を取得します。



トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mask || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform