Menu
CoddyTech

Đặt ảnh bằng Rect

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

Tự tính góc trên bên trái bằng tay nghĩa là phải cộng lại cho từng hình ảnh bạn đặt. Mỗi Surface có thể tạo một Rect theo kích thước của nó:

ship_rect = ship.get_rect(center=(320, 400))

Chỉ dùng get_rect() sẽ cho kết quả Rect(0, 0, 64, 64). Một từ khóa sẽ định vị Rect: center, midbottom, topleft hoặc bất kỳ điểm nào khác mà Rect có. Ở đây, tâm của con tàu nằm tại (320, 400) và pygame tính ra góc, (288, 368).

Blit hình ảnh tại Rect để hình ảnh nằm ở góc trên bên trái của Rect:

screen.blit(ship, ship_rect)

Giờ đây Rect là vị trí của con tàu. Thay đổi ship_rect.x hoặc ship_rect.centery để khung hình tiếp theo vẽ con tàu tại đó. Đây là cách mọi hình ảnh trong game di chuyển: giữ một Rect, thay đổi Rect rồi blit tại Rect. Bạn cũng dùng Rect này để kiểm tra va chạm, như trong phần 2.

challenge icon

Thử thách

Dễ

Đặt tàu bằng Rect.

  1. Sau khi tải ship, tạo ship_rect = ship.get_rect(center=(320, 400)).
  2. Blit ship tại ship_rect thay vì tại một điểm cố định.

Nhấn Chơi: tàu nằm gần phía dưới. 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()

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

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((20, 22, 40))
    screen.blit(ship, (288, 208))
    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