Menu
CoddyTech

ループ変数を使う

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

ループ変数も他の数値と同じなので、それを使って計算したり、位置以外のものを変更したりできます。ここでは、それぞれの惑星が前の惑星より大きく、黄色くなっています。

for i in range(6):
    x = 70 + i * 100
    radius = 5 + i * 5
    colour = (255, 80 + i * 30, 120)
    pygame.draw.circle(screen, colour, (x, 240), radius)

i = 2の場合を順に計算してみましょう。xは270、半径は15、色は(255, 140, 120)です。i = 5の場合は、xが570、半径が30、色が(255, 230, 120)です。

xやradiusのように本体の中で作られた変数は、繰り返しのたびに新しい値を受け取ります。先に各部分に名前を付けておくと、描画の行が短く分かりやすくなります。

色の各数値は0から255の間にしてください。ここで緑の最大値は80 + 5 * 30、つまり230なので、安全です。

challenge icon

チャレンジ

中級

惑星iのループを次のように変更します:

  1. 現在と同様に、中心を(70 + i * 100, 240)にする。
  2. 半径を5 + i * 5にする(5から30まで)。
  3. 色を(255, 80 + i * 30, 120)にする。

自分で試してみよう

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))
    # 画面を塗りつぶした後、ここで描画します。
    for i in range(6):
        pygame.draw.circle(screen, (255, 80, 120), (70 + i * 100, 240), 10)

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

pygame.quit()

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

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