PROGRAM PYTHON

Pygame超入門【第2回 画面作成】

 

 

もっとも単純な画面作成プログラム

Pygameの関数群を使うためには、まず画面を表示しなければなりません。
以下のプログラムは、Pygameの骨格となる処理だけを書いています。
このプログラムを動かすと、画面が一瞬出てすぐ消えます。

 

モジュールをインポートする

まず、Pygameのモジュールを使うためにインポートします。
なお、上記のプログラムではPygameの定数を使っていないので、「from pygame.locals import *」は書いていません。

 

モジュールを初期化する

インポートしたPygameのモジュールを全て初期化する関数です。

pygame.init()

pygame.init()は、内部で別の初期化モジュールを呼び出しているので、pygame.init()を使わずに直接必要なモジュールを初期化することもできます。
また、戻り値で初期化に成功したモジュール数とエラーになったモジュール数が分かります。
以下の例は、初期化に成功したモジュールが6個、エラーになったモジュールは0個になります。

 実行例
>>> import pygame
>>> pygame.init()
(6, 0)

 

描画用のウインドウや画面を初期化する

描画する画面の幅、高さやディスプレイの種類などを設定する関数です。

pygame.display.set_mode((,高さ), ディスプレイの種類, 色のビット数)

戻り値で表示する画面を返します。
幅、高さを指定しなかった場合は、パソコンの画面と同じサイズになります。

ディスプレイの種類は、以下のものが設定できます。
また、ディスプレイの種類は、(pygame.RESIZABLE|pygame.NOFRAME)のように記述することで、複数組み合わせることもできます。
何も指定しなければ、ソフトウェア側での通常のウインドウ画面が表示されます。

pygame.FULLSCREEN フルスクリーンのディスプレイを作成
pygame.DOUBLEBUF ハードウェア側での高速描写処理やOpenGLを使用
pygame.HWSURFACE ハードウェア側での高速描写処理を使用(フルスクリーンモードのみ)
pygame.OPENGL OpenGLでの描写処理
pygame.RESIZABLE ウィンドウサイズを変更可能
pygame.NOFRAME ウィンドウの外枠やGUI部品を非表示

色のビット数は、デフォルトで最適化されているので、通常は設定する必要はありません

 

モジュールの初期化を解除する

初期化されているPygameのモジュールを解除する関数です。

pygame.quit()

Pythonのインタプリターが終了すると自動的に pygame.quit() が呼び出されるので、明示的に書く必要はありませんが、お約束として書いておきます。

 

画面を表示したままにする

上記のプログラムでは、画面が一瞬で閉じてしまうので、画面を表示したままになるように修正します。

 

指定したイベントかどうか調べる

指定した種類のイベントタイプがイベントキューにあった場合は、trueを返す関数です。

pygame.event.peek(イベント名)

上記のプログラムでは、イベントキューにKEYDOWNイベントがあったら、ループを抜けて処理を終了します。
なんらかのキーが押された時に、KEYDOWNイベントが発生します。

 

エスケープキーが押された時に画面を終了する

上記のプログラムでは、どんなキーが押されても画面が閉じてしまいます。
エスケープ(ESC)キーが押された場合のみ、画面を終了するように修正します。
以下のプログラムは、イベントキューからイベントを取得して、押されたキーがエスケープ(ECS)キーだった場合のみ、forループとwhileループを抜けて処理を終了します。

 

イベントを取得する

イベントキューからイベントを取得する関数です。
イベントオブジェクトの key という変数は、イベントタイプが KEYDOWN の時に使われ、どのキーが押されたのかが分かります。

pygame.event.get()

 

 

-PROGRAM, PYTHON
-