Menu
CoddyTech

かご

Coddyの「Pygameでゲームを作ろう」コースのレッスン 9/40。

新しいゲームです。ブロックが上から落ちてきて、かごで受け止めます。かごもブロックも長方形で、pygameにはそのためのクラスがあります:pygame.Rect。

basket = pygame.Rect(200, 330, 80, 16)

Rectは、前と同じ順序で位置とサイズをまとめて保持します:x、y、幅、高さ。basket.xとbasket.yを読み取ったり変更したりでき、各辺も把握しています: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です。

challenge icon

チャレンジ

簡単
  1. ループの前に、basket = pygame.Rect(200, 330, 80, 16)を作成します。
  2. ループ内で、塗りつぶしの前に、左キーまたは右キーが押されている間、1フレームあたり8ピクセル移動させ、その後basket.clamp_ip(screen.get_rect())を使ってウィンドウ内に収めます。
  3. 塗りつぶしの後に、青色の(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()
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Pygameでゲームを作ろうのすべてのレッスン

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