Menu
CoddyTech

Tải hình ảnh

Thuộc phần Sprite và hình ảnh trong hành trình Pygame của Coddy. Bài học 1 trên 39.

Trò chơi vẽ hình ảnh, không chỉ các hình khối. Hình ảnh lấy từ một tệp ảnh, còn pygame chuyển tệp đó thành một Surface, cùng loại đối tượng với cửa sổ: một lưới pixel để bạn vẽ lên.

ship = pygame.image.load("assets/images/ship.png").convert_alpha()

Đường dẫn tính từ main.py: trò chơi có thư mục assets nằm cạnh tệp này, còn thẻ Assets bên cạnh trò chơi liệt kê mọi tệp trong thư mục đó.

convert_alpha() sao chép hình ảnh sang định dạng pixel riêng của cửa sổ, nhờ đó việc vẽ ảnh ở mỗi khung hình sẽ nhanh và giữ nguyên các pixel trong suốt. Hàm này cần cửa sổ, vì vậy hãy tải hình ảnh sau set_mode. Tải mỗi hình ảnh một lần, trước vòng lặp: đọc tệp 60 lần mỗi giây sẽ làm trò chơi chậm đi.

Để vẽ hình ảnh, hãy blit nó lên cửa sổ. Vị trí xác định góc trên bên trái của ảnh:

screen.blit(ship, (288, 208))

Gọi blit sau screen.fill(...), nếu không, phần tô nền sẽ phủ lên hình ảnh.

challenge icon

Thử thách

Dễ

Hiển thị hình ảnh con tàu ở giữa cửa sổ.

  1. Sau set_mode, tải assets/images/ship.png bằng .convert_alpha() vào một biến có tên ship.
  2. Trong vòng lặp, sau khi tô màu nền, dùng blit để vẽ ship với góc trên bên trái tại (288, 208).

Nhấn Chơi: con tàu kích thước 64 x 64 nằm ở giữa. Sau đó nhấn Kiểm tra.

Tự làm thử

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()

Tất cả bài học trong Sprite và hình ảnh

Tự luyện tập: Playground Pygame