篮子
本课属于 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。
挑战
简单为 Catch the Blocks 制作篮子。
- 在循环之前,创建
basket = pygame.Rect(200, 330, 80, 16)。 - 在填充屏幕之前,按住 Left 或 Right 时,让篮子每帧移动 8 像素,然后执行
basket.clamp_ip(screen.get_rect())。 - 填充屏幕后,将篮子绘制成蓝色
(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 在线编辑器