Menu
CoddyTech

Lưới ô

Bài học 19 trên 41 trong khóa học Tạo trò chơi với Pygame của Coddy.

Rắn di chuyển trên một lưới. Cửa sổ có 24 cột và 18 hàng ô, mỗi ô là hình vuông cạnh 20 pixel, và rắn di chuyển từng ô một.

Làm việc với ô và chỉ chuyển chúng thành pixel khi vẽ. Ô (col, row) bắt đầu tại pixel (col * 20, row * 20). Vẽ mỗi ô nhỏ hơn 2 pixel, lùi vào 1 pixel từ mỗi cạnh, sẽ tạo ra một khe hẹp giữa các ô liền kề để bạn nhìn thấy các đốt của rắn.

def draw_cell(cell, color):
    col, row = cell
    pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))

col, row = cell giải nén tuple thành hai biến. Giữ các số trong những hằng số như CELL, COLS và ROWS: tên trong code cho biết chúng có ý nghĩa gì, và thay đổi một hằng số sẽ làm thay đổi toàn bộ trò chơi.

challenge icon

Thử thách

Dễ

Vẽ đầu rắn trên một lưới ô.

  1. Phía trên vòng lặp, viết draw_cell(cell, color), hàm này vẽ một ô cách mỗi cạnh 1 pixel như trên.
  2. Đặt head = (5, 9).
  3. Sau lệnh tô màu, vẽ đầu rắn bằng draw_cell(head, (180, 255, 160)).

Nhấn “Chơi”: một ô màu xanh lá nằm ở bên trái của hàng 9. Sau đó nhấn “Kiểm tra”.

Tự làm thử

import pygame

CELL = 20
COLS, ROWS = 24, 18

pygame.init()
screen = pygame.display.set_mode((COLS * CELL, ROWS * CELL))
pygame.display.set_caption("Snake")
clock = pygame.time.Clock()

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

    screen.fill((30, 30, 46))
    pygame.display.flip()
    clock.tick(10)

pygame.quit()

Tất cả bài học trong Tạo trò chơi với Pygame

Tự luyện tập: Playground Pygame