トップへ戻る 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.event
    イベントとイベントキューを操作するpygameモジュールです。

      pygame.event.pump - 内部処理を行うpygameのイベントハンドラ。
      pygame.event.get - イベントキューからイベントを取得します。
      pygame.event.poll - イベントキューからイベントを一つ取得します。
      pygame.event.wait - イベントキューからイベントを一つ取得するまで待機します。
      pygame.event.peek - 指定した種類のイベントがイベントキュー内にあるかを調べます。
      pygame.event.clear - イベントキュー内のイベントを全て削除します。
      pygame.event.event_name - イベント識別定数の定数名を取得します
      pygame.event.set_blocked - イベントキューに送られるイベントの振り分け処理を行います。
      pygame.event.set_allowed - イベントキューに送られるイベントの振り分け処理を行います。
      pygame.event.get_blocked - 指定した種類のイベントが、イベントキューの振り分け対象になっているか調べます。
      pygame.event.set_grab - 他のアプリケーションへの入力操作開放を制御します。
      pygame.event.get_grab - 他のアプリケーションへ入力操作を開放しているか調べます。
      pygame.event.post - 作成したイベントをイベントキューに送ります。

    Pygameではイベントキューに送られた全てのイベントメッセージを処理することができます。このモジュールの命令を使用することでイベントキューの操作を行えます。イベントキューへイベントメッセージを送る場合には、displayモジュールの影響を大きく受けます。displayモジュールが初期化されずにビデオモードが設定されていないと、イベントキューは一切動作しません。

    pygameで使用されるキューはイベントオブジェクトを設定するごく普通のキューなので、順番待ちに設定されているイベントを操作することもできます。単にイベントが順番待ちに並んでいるかどうか調べたりする命令から、イベントを順番待ちから取り除く命令まで、様々な方法で操作することができます。

    全てのイベントは、固有の識別定数を持っています。イベントの識別定数に使用されている値はNOEVENT定数(0)からNUMEVENTS定数(32)の範囲となります。 USEREVENT定数(24)かそれよりも大きい値を、ユーザー独自のイベント識別定数として使用することもできます。独自のイベント識別定数を使用する場合は、上記の規約に従っているかをよく確認してください。

    入力装置の操作状況を調べるには、対応モジュールを使用して入力装置に直接アクセスすればイベントキューを経由するよりも早く情報を取得できます;入力装置とはマウスやキーボード、ジョイスティックのことです。この方法を使う場合は、pygameとシステムウィンドウマネージャーや他のプラットフォーム部分との間で同期が取れていなければいけないので覚えて置いてください。pygameとシステムとの同期を維持するには、pygame.event.pump命令を実行して現在の状態を保つ必要があります。大抵はゲームループ1回ごとに1度の割合でこの命令を実行するとよいでしょう。

    イベントキューにはシンプルではありますが振り分け機能が付いています。イベントキューに送られるイベントの中から特定のイベントを除外することで若干パフォーマンスを向上させることができます。pygame.event.set_allowed命令やpygame.event.set_blocked命令を使用してイベントの振り分けを行います。既定では全てのイベントの受け取りが許可されています。

    ジョイスティック機器の初期化が行われるまで、Joystickモジュールはイベントを発生させることはありません。

    Eventオブジェクトにはイベントの種類や様々な情報などが含まれており、それらは参照はできますが変更はできません。Eventオブジェクトには命令は搭載されておらず、データのみが入っています。Eventオブジェクトは通常イベントキューから取得されますが、 pygame.event.Event命令を使用して独自のEventを作成することもできます。

    プログラムを作る際にはイベントキューにイベントが溜まり過ぎてがオーバーフローしないよう注意しなければいけません。イベントをイベントキューから定期的に削除したり取り出したりしないとオーバーフローしてしまいます。イベントキューでオーバーフローが発生すると例外が発生します。

    全てのEventオブジェクトでは、Event.typeを使用してイベントの種類を特定する識別番号を取得できます。また Event.dictを使用してEvent内のデータを直接参照することもできます。各データを参照するには、Event.dictに参照したいデータの辞書キーワードを添え字として指定します。

    プログラムのデバッグや動作試験を行う際に、Eventオブジェクトが持つイベントの種類や内部データ画面にすばやく表示することができます。pygameの標準イベントでは、イベントの種類によって取得できるデータが変わってきます。下記のリストがイベントの種類とそのイベントで取得できるデータとなります。

        QUIT	     none
        ACTIVEEVENT	     gain, state
        KEYDOWN	     unicode, key, mod
        KEYUP	     key, mod
        MOUSEMOTION	     pos, rel, buttons
        MOUSEBUTTONUP    pos, button
        MOUSEBUTTONDOWN  pos, button
        JOYAXISMOTION    joy, axis, value
        JOYBALLMOTION    joy, ball, rel
        JOYHATMOTION     joy, hat, value
        JOYBUTTONUP      joy, button
        JOYBUTTONDOWN    joy, button
        VIDEORESIZE      size, w, h
        VIDEOEXPOSE      none
        USEREVENT        code
    

    Eventオブジェクトでは等価比較を使用できます。二つのEventオブジェクト比較してイベントの種類と各内部データが同じ値だった場合、==で比較した結果はTrueとなります。 Inequality checks also work.



    pygame.event.pump
      内部処理を行うpygameのイベントハンドラ。
      pygame.event.pump(): return None

      ゲームをプログラムする際には、1フレーム毎に何らかの方法でイベントキューを呼び出す必要があります。そうすることによって、プログラムを通してrest of the operating systemを操作することができます。特にイベントを制御する命令を実行していない場合は、このpygame.event.pump命令を実行してpygameがイベントを処理できるようにしなければいけません。

      pygame.eventの他の命令を使って常にイベントキューに溜まったイベントの処理を行っているのであれば、この命令を使う必要はありません。

      イベントキューに関して、必ず対処しておかなければならないことがあります。 ゲームではユーザーの操作によって表示内容が常に移り変わっていくので、システムから送られてくるクリックやキー入力といったイベントをイベントキューから常時受け取って処理をし続けなければ正常に動きません。そのため長時間イベントキューが処理されないような状況になると、システム側の判断によってpygameプログラムが停止させられてしまうことがあります。



    pygame.event.get
      イベントキューからイベントを取得します。
      pygame.event.get(): return Eventlist
      pygame.event.get(type): return Eventlist
      pygame.event.get(typelist): return Eventlist

      この命令を実行するとイベントキューから全てのイベント情報を取得し、取得されたイベントはイベントキューから削除されます。引数にイベントの種類が設定されていた場合は、指定した種類のイベント情報のみがイベントキューから取得されます。

      特定のイベントのみをイベントキューから取得していると、取得されなかったイベントが溜まって最後にはイベントキューの許容量を超えてしまうので気をつけてください。



    pygame.event.poll
      イベントキューからイベントを一つ取得します。
      pygame.event.poll(): return Event

      イベントキューからイベントを一つ取得します。イベントキューが空の場合はpygame.NOEVENTイベントが戻り値として帰ります。取得されたイベントはイベントキューから削除されます。



    pygame.event.wait
      イベントキューからイベントを一つ取得するまで待機します。
      pygame.event.wait(): return Event

      イベントキューからイベントを一つ取得します。イベントキューが空の場合はイベントが発生するまで待機します。取得されたイベントはイベントキューから削除されます。イベント発生を待っている間、プログラムは休止状態となります。休止状態になることでパソコンの動作リソースを占有せず、他のアプリケーションも正常に使用することができるのです。



    pygame.event.peek
      指定した種類のイベントがイベントキュー内にあるかを調べます。
      pygame.event.peek(type): return bool
      pygame.event.peek(typelist): return bool

      指定した種類のイベントがイベントキュー内にあった場合、trueが戻り値として返ります。複数の種類のイベントをリスト型にまとめて引数に設定すると、どれか一つでもイベントキュー内にあればtrueが戻り値として返されます。



    pygame.event.clear
      イベントキュー内のイベントを全て削除します。
      pygame.event.clear(): return None
      pygame.event.clear(type): return None
      pygame.event.clear(typelist): return None

      イベントキュー内にある全てのイベント、もしくは特定の種類のイベントを削除します。これはpygame.event.getと同じような動作ですが、削除したイベントは戻り値として返されません。全てのイベントを削除するだけの用途であれば、こちらの方がやや処理が速いです。



    pygame.event.event_name
      イベント識別定数の定数名を取得します
      pygame.event.event_name(type): return string

      Pygameでは、あらかじめ定義されているイベント識別定数を使ってイベントの種類を特定します。これが何のイベントなのかをユーザーに伝える場合には、数字ではなく文字にしなければ上手く説明ができません。この命令を使用すると、イベントの種類が定義された定数名を戻り値として返します。The string is in the WordCap style.



    pygame.event.set_blocked
      イベントキューに送られるイベントの振り分け処理を行います。
      pygame.event.set_blocked(type): return None
      pygame.event.set_blocked(typelist): return None
      pygame.event.set_blocked(None): return None

      この命令で設定された種類のイベントはイベントキューに送られなくなります。既定では、全てのイベントはイベントキューに送られるように設定されています。同じ種類のイベントに複数回禁止設定を行っても特に問題はありません。

      Noneを引数として設定した場合は振り分けの解除設定がされ、全ての種類のイベントがイベントキューに送られるようになります。



    pygame.event.set_allowed
      イベントキューに送られるイベントの振り分け処理を行います。
      pygame.event.set_allowed(type): return None
      pygame.event.set_allowed(typelist): return None
      pygame.event.set_allowed(None): return None

      この命令で設定された種類のイベントは、イベントキューに送られるようになります。既定では、全てのイベントはイベントキューに送られるように設定されています。同じ種類のイベントに複数回許可設定を行っても特に問題はありません。

      Noneを引数として設定した場合、 NONEの値を持つイベントがイベントキューに送れるようになります。



    pygame.event.get_blocked
      指定した種類のイベントが、イベントキューの振り分け対象になっているか調べます。
      pygame.event.get_blocked(type): return bool

      指定した種類のイベントがイベントキューの振り分け対象になっていた場合、trueが戻り値として返されます。



    pygame.event.set_grab
      他のアプリケーションへの入力操作開放を制御します。
      pygame.event.set_grab(bool): return None

      プログラムが動作してウィンドウが開いている時、他のアプリケーションにフォーカスが移るとマウスやキーボードからの入力権もそちらに移ります。イベントのgrab設定をTrueにした場合、あなたのプログラムが入力権を独占してしまいます。

      ユーザーが他の作業を行えなくなってしまうので、入力の独占設定はなるべく行わないようにしてください。



    pygame.event.get_grab
      他のアプリケーションへ入力操作を開放しているか調べます。
      pygame.event.get_grab(): return bool

      プログラムが入力操作を独占している場合、trueが戻り値として返されます。pygame.event.set_grab命令を使用することで入力操作の独占設定を行えます。



    pygame.event.post
      作成したイベントをイベントキューに送ります。
      pygame.event.post(Event): return None

      イベントキューの最後尾に作成したイベントを送ります。送られたイベントは後で他のイベントキュー操作関数から取得することができます。

      この命令は主に、ユーザーが独自に定義したpygame.USEREVENTイベントをイベントキューに送るために使用されます。それ以外の種類のイベントもこの命令で送ることができますが、キー入力やマウス操作といった通常はシステム側が発生させるイベントを送る場合、作成したイベントの内部データに適切な値をあらかじめ設定しておいてください。



トップへ戻る 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