Menu
CoddyTech

Tàu tuần tra

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

Đã đến lúc xây dựng một trò chơi hoàn chỉnh: Star Patrol. Các đợt tàu địch bay xuống từ phía trên. Tàu của bạn tuần tra ở cuối cửa sổ, di chuyển sang trái và phải, đồng thời bắn tia laser lên trên. Phá hủy mọi đợt tàu để chiến thắng; để ba kẻ địch lọt qua hoặc đâm vào chúng thì trò chơi kết thúc.

Mọi đối tượng trong trò chơi đều là sprite: người chơi, tia laser của người chơi, kẻ địch và vụ nổ của chúng. Hãy bắt đầu với người chơi, như trong chương 4:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = ship_image
        self.rect = self.image.get_rect(midbottom=(320, 470))

Tải ship_image một lần sau khi tạo cửa sổ. update của nó di chuyển Rect bằng các phím mũi tên và giữ cho nó nằm trong cửa sổ. Vòng lặp chính gọi player.update() và vẽ con tàu.

Chương này mở rộng cùng một chương trình qua từng bài học, vì vậy hãy giữ nguyên các tên mà nhiệm vụ đưa ra: các bước kiểm tra tìm những phần của trò chơi bằng các tên đó.

challenge icon

Thử thách

Trung bình

Bắt đầu Star Patrol với con tàu của người chơi.

  1. Tải assets/images/ship.png vào ship_image.
  2. Viết class Player(pygame.sprite.Sprite): dùng ảnh ship_image, đặt Rect sao cho chính giữa cạnh dưới ở vị trí (320, 470), và viết update để di chuyển tàu 6 pixel mỗi khung hình bằng phím mũi tên trái và phải, đồng thời giữ tàu trong cửa sổ.
  3. Tạo player = Player(), gọi player.update() và blit tàu ở mỗi khung hình.

Nhấn Chơi rồi giữ các phím mũi tên: con tàu tuần tra ở cạnh 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("Star Patrol")
clock = pygame.time.Clock()

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

    screen.fill((12, 14, 30))
    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