星を置こう
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)星が月や地面の上に表示されるように、月と地面を描画した後に星を描画します。月の上に配置した星は月の手前に表示され、より近くにあるように見えます。
チャレンジ
簡単Night Skyを始めましょう:
- ゲームループの前に
stars = []を作成します。 MOUSEBUTTONDOWNイベントが発生したら、event.posをstarsに追加します。- 月と地面を描画した後、すべての星を、半径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プレイグラウンド