加载图像
本课属于 Coddy Pygame 学习旅程的“精灵与图像”单元。第 1 课,共 39 课。
游戏会绘制图片,而不只是形状。图片来自图像文件,pygame 会把文件转换成 Surface,它和窗口是同一类对象:一个可以绘制的像素网格。
ship = pygame.image.load("assets/images/ship.png").convert_alpha()路径相对于 main.py:游戏旁边有一个 assets 文件夹,游戏旁边的 Assets 选项卡会列出其中的所有文件。
convert_alpha() 会把图片复制为窗口自己的像素格式,这样每一帧绘制它的速度就会很快,而且能保留透明像素。它需要窗口,因此要在 set_mode 之后加载图片。每张图片只加载一次,并且要在循环之前加载:每秒读取文件 60 次会拖慢游戏。
要绘制图片,请用 blit 将它绘制到窗口上。位置表示图片左上角所在的位置:
screen.blit(ship, (288, 208))在 screen.fill(...) 之后绘制图片,否则填充操作会把它盖住。
挑战
简单在窗口中间显示飞船图像。
- 在
set_mode之后,使用.convert_alpha()加载assets/images/ship.png,并将其放入名为ship的变量中。 - 在循环中,填充窗口后,将
ship的左上角放在(288, 208)处并绘制它。
按“开始”:64 × 64 的飞船位于窗口中间。然后按“检查”。
亲手试试
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
精灵与图像中的所有课
自己练习: Pygame 在线编辑器