40歳から始めるプログラミング

40歳になったおっさんがゲーム作りを目指すブログです。

Python学習とゲーム作り#2

前回はウインドウ作りをやってみました。今回はそのコードを自分なりに紐解いてみたいと思います。前回のコードがこちらです。

import pygame
pygame.init()
pygame.display.set_mode((800,600))

running = True
while running:
    for key in pygame.event.get():
        if key.type == pygame.QUIT:
            running = False

これでウィンドウができたのですが、ウィンドウを作るだけなら以下のコードだけでもできますが一瞬で消えます。

import pygame
pygame.init()
pygame.display.set_mode((800,600))

意味としてはこんな感じでしょうか。

import pygame 
#pygameをインポートする。読み込み的な

pygame.init()
#pygameを初期化する。なぜ初期化が必要か不明だけどpygameを使う際には必要な工程だそう

pygame.display.set_mode((800,600))
#pygame.display.set_modeがディスプレイを作るpygameの関数で、要はpygameに含まれる関数を使うために最初にpygameをインポートするのかな。数字は800が横で600が縦のサイズを指定

プログラムは上から順に実行して最後の行が終わると終了するので、ループさせて何か入力を受付待ち状態にする必要があるそう。だからウィンドウが一瞬で消えたわけですね。そこでウィンドウを表示させたままにするために、

running = True
while running:
    for key in pygame.event.get():
        if key.type == pygame.QUIT:
            running = False

これが必要になってくるわけですね。

running = True
#runningという変数をTrueにする(runningは違う名前でもOK)。Trueは真という意味。下のwhile関数にかかってくる

while running:
#while関数は指定した条件式が真のときに処理を繰り返し実行。whileの後のrunningが条件式で、上のrunning = Trueでrunningが真のため下の行を繰り返し処理。:で下へ続きますよ的な意味

    for key in pygame.event.get():
#forが良くわからない。pygame.event.get()は、キー入力を受け付ける関数のよう。keyという変数(何でも可)に入力されたーキー情報を代入?

        if key.type == pygame.QUIT:
#pygame.QUITはウィンドウの閉じるボタンが押されたとき。上のfor文と絡んで、もしキー入力がウィンドウの閉じるボタンが押された場合。keyはkeyだけじゃ駄目で.typeが必要。=が2つで等しいという意味

            running = False
#runningという変数がTrueからFalseになる。Falseは偽という意味。ここで真から偽に変わったことによって、whileの条件が偽になるので繰り返し処理が終了。ウィンドウが閉じる。

素人なりにあたりをつけてみました。大いに間違いがありそう😊
if key.type == pygame.QUIT: のQUITを消してみると閉じるボタンをクリックしても消せないウィンドウが出来上がります。何となくはわかったのですがfor~inと.typeの意味をもっと理解して次に進みたいと思います。今回はここまで!