Menu
CoddyTech

加载图像

本课属于 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(...) 之后绘制图片,否则填充操作会把它盖住。

challenge icon

挑战

简单

在窗口中间显示飞船图像。

  1. 在 set_mode 之后,使用 .convert_alpha() 加载 assets/images/ship.png,并将其放入名为 ship 的变量中。
  2. 在循环中,填充窗口后,将 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 在线编辑器