Menu
CoddyTech

篮子

本课属于 Coddy Pygame 学习旅程的“游戏循环”单元。第 26 课,共 35 课。

一个新游戏:方块从顶部落下,你要用篮子接住它们。篮子和方块都是矩形,所以它们是 pygame.Rect,就像 Gem Hunt 中的宝石和箱子一样。

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。

challenge icon

挑战

简单

为 Catch the Blocks 制作篮子。

  1. 在循环之前,创建 basket = pygame.Rect(200, 330, 80, 16)。
  2. 在填充屏幕之前,按住 Left 或 Right 时,让篮子每帧移动 8 像素,然后执行 basket.clamp_ip(screen.get_rect())。
  3. 填充屏幕后,将篮子绘制成蓝色 (80, 160, 255)。

按下“开始”并按住 Left 或 Right:篮子会在边缘停下。然后按“检查”。

亲手试试

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 在线编辑器