クリックして追加
CoddyのPygameジャーニー「ゲームウィンドウで学ぶPython」セクションの一部。レッスン 25/32。
ゲームの実行中にリストを増やすことができます。stars.append(item)は項目を末尾に追加します。
マウスクリックはイベントループにMOUSEBUTTONDOWNイベントとして届き、event.posはクリックが発生した位置を表す(x, y)タプルです。
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)クリックするたびに位置が1つ追加されます。描画部分ではすでにリスト内のすべての星を描画するため、新しい星は次のフレームに表示され、リストに保持されるのでそのまま残ります。
リストはセットアップ部分で空の状態から始まります。stars = []。ゲームループ内で作成すると、毎フレーム空になり、星はすぐに消えてしまいます。
チャレンジ
簡単イベントループでMOUSEBUTTONDOWNイベントが発生したら、event.posをstarsに追加します。クリックするたびに白い星が配置されます。
自分で試してみよう
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# ゲームループの前に、ここで準備をします。
stars = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 各フレームで、ここで内容を変更します。
screen.fill((20, 24, 48))
# 塗りつぶした後、ここで描画します。
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
ゲームウィンドウで学ぶPythonのすべてのレッスン
自分で練習してみよう: Pygameプレイグラウンド