pygameの基本的なソースコード解説(後編)

はじめに

こんにちは。デジタルステーション習志野スタッフの荒井です。

今回の記事では、以前にのpygame導入の記事で紹介したサンプルプログラムについて、より詳しい解説をしていきたいと思います。

この記事では、17行目から21行目の関数から順に解説していきます。

その他の関数については、前編、中編で紹介していますので、そちらも併せてご覧ください。

 

コードのおさらい

以前の記事では、以下のプログラムを書き、実行しました。

 

 

 

 

 

 

 

そして実行結果は、下記のようになります。

 

 

 

 

 

 

 

 

 

では、このコードで使われている関数などの意味を、一つずつ解説していきます。

 

17行目:while True:

 pythonについて学習していると、必ず学ぶ反復処理の一つであるwhile文ですが、今回のプログラムでは条件を「True」としています。

こうすることでwhile文は無限ループとなりますが、動作を停止させる手段を用意していれば問題はないです。

また、このwhile文のループを基盤として、前回の中編で紹介したようにゲームのもとを作ることが出来ます。

このwhile文の中にif文を使った条件分岐や、ユーザーの入力を受け付ける関数などを組み合わせていくことで、簡単なゲームであればすぐに作れてしまいます。

 

18行目:for event in pygame.event.get():

pygame.event.get()は、イベントキューという所からイベント情報を取得し、リストとして返す関数です。

イベントとは、キーボードの動きや、マウスの操作などを認識して、操作情報を保存する仕組みのことで、それらの情報はイベントキューに送られます。

このfor文では、変数eventにイベントキューに入っているイベントを代入していき、実行していく文章となっています。

 

19行目:if event.type == pygame.QUIT:

先ほどのfor文の続きで、代入されたイベントがpygame.QUITであるかを調べています。

pygame.QUITイベントは、ウィンドウの閉じるボタンを押したときに発生するイベントです。

 

20,21行目:pygame.quit(), sys.exit()

pygame.quit()関数は、最初に初期化したpygameモジュールの初期化を解除し、リソースを開放するための関数です。

この関数を実行しても、pythonのプログラム自体は止まりません。

 

sys.exit()関数は、pygameモジュールではなくsysモジュールのもので、pythonのプログラムを終了させることが出来ます。

ちなみに、引数を省くと0が入れられますが、一般的に0は正常終了を意味し、1は異常終了を意味します。

 

18行目から21行目までの処理をまとめると、まずfor文を使ってイベントキュー内にQUITイベントが含まれていないかを確認し、もしQUITイベントが含まれていたなら(=ユーザーが閉じるボタンを押したなら)プログラムを終了させる、という流れになっています。

この処理があることで、このプログラムは無限ループから脱出できるようになっています。

まとめ

今回の解説はこれで以上となります。

event関数も、キーボードで操作を受け付けるゲームなどを作る場合には便利なものなので、仕組みが少し理解しづらいですが、覚えておくと便利です。

今回書かせていただいた、pygameの基本的なソースコード解説の内容を十分に理解することが出来ていれば、アイデア次第で様々なゲームが作れると思います。ぜひ、この記事を参考にして、様々なゲームを作ってみてください!

 

無料体験 いつでもお問い合わせ下さい

デジタルステーション習志野

〒274-0063 船橋市習志野台4-1-7 習志野駅前郵便局2F