バスケット
Coddyの「Pygameでゲームを作ろう」コースのレッスン 9/41。
新しいゲームです。ブロックが上から落ちてきて、かごで受け止めます。かごもブロックも長方形なので、Gem Huntの宝石や木箱と同じように、pygame.Rectです。
basket = pygame.Rect(200, 330, 80, 16)basket.xとbasket.yに加えて、Rectは端の位置、つまりbasket.left、basket.right、basket.top、basket.bottomと、中央の位置であるbasket.centerxを把握しています。
Rectをそのままpygame.draw.rect(screen, color, basket)に渡します。また、別のRectの内側に収まるようにすることもできます。basket.clamp_ip(screen.get_rect())は、端を越えたときにかごをウィンドウ内に戻します。screen.get_rect()はウィンドウ自体のRectです。
チャレンジ
簡単「Catch the Blocks」のかごを作りましょう。
- ループの前に、
basket = pygame.Rect(200, 330, 80, 16)を作ります。 - 塗りつぶしの前に、左または右を押している間、フレームごとに8ピクセル移動させ、その後
basket.clamp_ip(screen.get_rect())を実行します。 - 塗りつぶしの後に、青色の
(80, 160, 255)で描画します。
「プレイ」を押して左または右を押し続けると、かごは端で止まります。その後、「確認」を押します。
自分で試してみよう
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Pygameでゲームを作ろうのすべてのレッスン
自分で練習してみよう: Pygameプレイグラウンド