Menu
CoddyTech

星を置こう

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

最後の4つのレッスンでは、Night Skyという小さなゲームを作ります。クリックして星を配置すると、星がきらめき、カウンターに星の数が表示されます。星が20個になると、空いっぱいになります。各レッスンは、その前のレッスンで書いたコードをもとに始めます。

このゲームでは、このセクションで学んだことを使います。星は位置のリストで、ゲームループの前に空のリストとして作成します。クリックすると位置が追加され、forループで毎フレーム、リスト内のすべての星を描画します。

stars = []

        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 3)

星が月や地面の上に表示されるように、月と地面を描画した後に星を描画します。月の上に配置した星は月の手前に表示され、より近くにあるように見えます。

challenge icon

チャレンジ

簡単

Night Skyを始めましょう:

  1. ゲームループの前にstars = []を作成します。
  2. MOUSEBUTTONDOWNイベントが発生したら、event.posをstarsに追加します。
  3. 月と地面を描画した後、すべての星を、半径3の白い(255, 255, 255)の円として描画します。

自分で試してみよう

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, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))

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

pygame.quit()

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

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