今回は、以前から話していたPygameを導入します。
Pygameは、本格的なゲーム開発を行う為の拡張モジュールでしたね。
画像の拡大縮小や、同時にキー入力を行うなど、ゲーム開発において欠かせない機能が充実しているので、さっそくインストールしていきましょう。
Pygameのインストールと基本的な使い方について
Pygameのインストール(Windows)
コマンドプロンプトを起動して「pip install pygame」と入力します。
Installing collected packages: pygame
Successfully installed pygame-1.9.6と表示されたら成功です。
尚、「’pip3′ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され上手くインストール出来ない場合は下の記事を参考にしてみてください。
Pygameの基本的な使い方について
インストール完了したら、早速Pygameを使ったプログラムを作成してみたいと思います。
Pythonについて本格的に学びたいなら
①画面の色を変更するプログラム
Pycharmを開いて、新規スクリプト「pgsample1」を作成します。
このスクリプトを実行すると、画面の色が黒から青に変わります。また、無限ループになっているのでずっと繰り返されます。
①import pygame
Pygameを使うために、pygameモジュールをインポートします。
②BLACK = (0,0,0)
色の指定は、RGB値にて指定します。この辺は、ネットで調べると色に対応したRBG値を簡単に取得出来るので、プログラムで使いたい色は予め定義しておくと良いでしょう。
③pygame.init()
pygameモジュールを初期化します。
④screen = pygame.display.set_mode((600,600))
サイズを指定して画面を初期化します。画面サイズを変えたい場合は括弧内の数値を変えます。
⑤pygame.display.set_caption(“画面の色”)
画面に表示するタイトルの文字です。
⑥clock = pygame.time.Clock()
時間を管理するためのclockオブジェクトを作成します。22行目でclock.tick(30)と記述していますが、ここでフレームレートを指定しています。このプログラムの場合は、1秒間におよそ30回の処理を行う事になります。この値は、制作するゲームによって変えるようにします。
⑦while True:
いわゆる無限ループってやつですね。Trueの間指定した処理を繰り返します。もしも、無限ループから抜けられなくなった場合は「Ctrl+C」で強制終了することが出来ます。
⑧for event in pygame.event.get():
pygameのイベントを繰り返して処理します。
⑨if event.type == pygame.QUIT:
ウィンドウ右上の閉じるボタンをクリックされたら、プログラムを終了します。
⑩screen.fill(BLACK)
画面全体を黒で塗りつぶします。最初に定義しておいた色から参考に。
⑪pygame.draw.rect(screen,col,[0,0,600,600])
(0,0)から(600,600)の矩形を作成することで、画面全体を覆います。後は、colの値を変えることで画面全体を黒から青にします。
この時点でお気づきかと思いますが、このプログラムにおいて「screen.fill(BLACK)」という記述は不要なんですよね。
私の場合は、画面全体の色を変えるようにしていますが、指定した場所だけ色を変えたい場合且つ、ベースとなる色を指定したい場合に「screen.fill(BLACK)」などと記述すれば良いでしょう。
⑫pygame.display.update()
画面を更新します。
⑬if __name__ == ‘__main__’:
Pythonのプログラムは、他のプログラムにインポートして使うことが出来ますが、インポートしたプログラムを起動させない場合にこの記述が役立ちます。
プログラムを直接実行すると「__name__」に「__main__」という値が入るので、このif文によってmain関数が呼ばれます。
インタプリタでモジュールが読み込まれた場合は、変数の中身が「__main__」とならず勝手に処理が実行されないようになります。
②Pygameを使った画像の表示方法
続いて、サンプルとしてフィールド用の画像を表示させたいと思います。
まずは、pygame.image.load()にて画像を読み込みます。読み込んだ画像の描画は、screen.blitで行います。tkinterとは異なり、一番左上がx,y座標となりますので気を付けてください。