Menu
CoddyTech

for文で繰り返す

CoddyのPygameジャーニー「ゲームウィンドウで学ぶPython」セクションの一部。レッスン 15/32。

forループは、与えられた各値について1回ずつ、ループ内の行を繰り返し実行します。

for i in range(8):
    pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)

range(8)は、0から始まり8の手前で止まる、0、1、2、…、7の8個の数値を返します。ループは順番にそれぞれの値をiに格納し、インデントされた行を実行します。そのため、最初の星はx座標40に、次は120に、その次は200に描かれ、600まで続きます。

インデントされた行は、ifの場合と同じように、ループの本体です。本体の後にある、外側のインデントに戻った最初の行は、ループが終わると1回実行されます。

このループはゲームループの描画部分にあるため、8つの星は毎フレーム描画し直されます。短く、すぐに終わるので、フレームは予定どおりに終了します。

iはカウント用の変数によく使われる名前ですが、どんな名前でも使えます。for n in range(8):も同じように数を数えます。

challenge icon

チャレンジ

簡単

1つの星を、range(8)を反復するforループに置き換え、(40 + i * 80, 80)の位置に半径5の白い星を8個描画します。

自分で試してみよう

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# ゲームループの前に、ここで準備をします。

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

    # フレームごとに、ここで内容を変更します。

    screen.fill((20, 24, 48))
    # 塗りつぶした後、ここで描画します。
    pygame.draw.circle(screen, (255, 255, 255), (40, 80), 5)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

ゲームウィンドウで学ぶPythonのすべてのレッスン

自分で練習してみよう: Pygameプレイグラウンド