Menu
CoddyTech

星のリスト

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

リストには、1つの変数に複数の値を順番に、角括弧で囲んで格納できます。

stars = [(100, 80), (220, 160), (360, 100)]

ここでは、各項目が位置を表すタプルです。stars[0]は最初の項目である(100, 80)、stars[1]は2番目の項目です。rangeと同じように、数え始める値は0です。

forループを使って、リストの中身を順にたどることができます。ループ変数には、各項目が順番に入ります。

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

位置はタプルなので、starをそのまま中心の位置に指定できます。リストに位置を追加すれば、ループを変更しなくても星が1つ増えます。リストは画面上に何があるかをゲームが記憶しておくためのもので、ループはリストに入っているものを描画します。

challenge icon

チャレンジ

簡単

リストから星を5つ描画しましょう:

  1. starsの末尾に(360, 100)、(480, 200)、(580, 70)を追加します。
  2. stars[0]を描画する行をfor star in stars:に置き換え、それぞれを半径5の白い(255, 255, 255)の円として描画します。

自分で試してみよう

import pygame

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

# ゲームループの前に、ここで初期設定をします。
stars = [(100, 80), (220, 160)]

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), stars[0], 5)

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

pygame.quit()

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

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