ループ変数を使う
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なので、安全です。
チャレンジ
中級惑星iのループを次のように変更します:
- 現在と同様に、中心を
(70 + i * 100, 240)にする。 - 半径を
5 + i * 5にする(5から30まで)。 - 色を
(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プレイグラウンド