Di chuyển ảnh
Thuộc phần Sprite và hình ảnh trong hành trình Pygame của Coddy. Bài học 3 trên 39.
Con tàu nằm ở đáy cửa sổ. Để điều khiển tàu bay sang trái và phải, hãy di chuyển Rect bằng các phím mũi tên, giống như cách bạn đã di chuyển hình vuông ở phần 2:
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
ship_rect.x += 6Dòng blit không thay đổi: nó vẽ tại vị trí hiện tại của Rect.
Một Rect có thể tự giữ mình bên trong một Rect khác. screen.get_rect() là Rect của cửa sổ, (0, 0, 640, 480), và
ship_rect.clamp_ip(screen.get_rect())sẽ đưa ship_rect trở lại bên trong khi nó nhô ra ngoài. _ip có nghĩa là thay đổi tại chỗ: nó thay đổi chính ship_rect. ship_rect.clamp(...) không có phần đó sẽ giữ nguyên ship_rect và trả về một Rect mới.
Thử thách
DễĐiều khiển tàu bay sang trái và phải.
- Trong vòng lặp, trước khi vẽ, giữ phím Left để di chuyển
ship_rectsang trái 6 pixel và giữ phím Right để di chuyển nó sang phải 6 pixel. - Sau đó, giữ tàu trong cửa sổ bằng
ship_rect.clamp_ip(screen.get_rect()).
Nhấn Chơi và giữ các phím mũi tên: tàu sẽ dừng ở mép cửa sổ. 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()
ship_rect = ship.get_rect(center=(320, 400))
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, ship_rect)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tất cả bài học trong Sprite và hình ảnh
5Va chạm chính xác đến từng pixel
Hình chữ nhật thật bất côngMặt nạSprite chính xác đến từng pixelVùng va chạm hình tròn3Lớp cho đối tượng trong trò chơi
Lớp đầu tiên của bạnPhương thứcSelf là đối tượngDanh sách đối tượngĐối tượng có hình ảnhDanh sách kẻ địchLớp con6Hoạt ảnh từ sprite sheet
Cắt sprite sheetBộ đếm khung hìnhTạo hoạt ảnh theo thời gianHiệu ứng nổ chỉ chạy một lầnTự luyện tập: Playground Pygame