Menu
CoddyTech

画面端で折り返す

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

ifは、条件が真の場合にのみ、その中の行を実行します。

if comet_x > 640:
    comet_x = 0

条件の末尾にはコロンを付けます。その下の行は4つのスペースでインデントします。これらの行はifに属します。Pythonは毎フレーム条件を判定します。彗星がウィンドウ内にある間、条件は偽なので何も起こりません。彗星が右端を越えると条件は真になり、彗星は左端に戻ります。

比較の結果はTrueまたはFalseです。>は「より大きい」、<は「より小さい」を意味し、==は2つの値が等しいかどうかを調べます。=1つは値を代入し、2つ並べると比較します。

> 640のような範囲を調べ、1つの正確な値だけを調べないようにしましょう。彗星は50から始まり、1フレームごとに3ピクセル移動します。つまり、635、638、641と進みます。640には決して到達しないため、comet_x == 640が真になることはありません。

challenge icon

チャレンジ

簡単

彗星を移動させる行の後にifを追加します。comet_xが640より大きいとき、comet_xを0に設定します。すると、彗星は何度もウィンドウを横切って飛びます。

自分で試してみよう

import pygame

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

# ゲームループの前に、ここで初期設定をします。
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200

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

    # ここで毎フレーム、値を変更します。
    comet_x = comet_x + 3

    screen.fill((20, 24, 48))
    # 塗りつぶした後、ここで描画します。
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)

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

pygame.quit()

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

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