Menu
CoddyTech

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 += 6

Dò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.

challenge icon

Thử thách

Dễ

Điều khiển tàu bay sang trái và phải.

  1. Trong vòng lặp, trước khi vẽ, giữ phím Left để di chuyển ship_rect sang trái 6 pixel và giữ phím Right để di chuyển nó sang phải 6 pixel.
  2. 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

Tự luyện tập: Playground Pygame