Menu
CoddyTech

Từng bước một

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

Con rắn luôn di chuyển. Duy trì hướng di chuyển bằng một hướng: mỗi bước, cần cộng thêm bao nhiêu ô vào cột và hàng.

  • (1, 0) là sang phải, (-1, 0) là sang trái.
  • (0, 1) là đi xuống, (0, -1) là đi lên.
direction = (1, 0)

while running:
    # các sự kiện
    head = (head[0] + direction[0], head[1] + direction[1])

Không thể thay đổi tuple, vì vậy mỗi bước sẽ tạo ra một tuple mới. Đồng hồ chạy ở tốc độ clock.tick(10): mười khung hình mỗi giây, nên con rắn di chuyển mười ô mỗi giây.

challenge icon

Thử thách

Dễ

Cho rắn di chuyển từng ô một.

  1. Trước vòng lặp, đặt direction = (1, 0).
  2. Trong vòng lặp, sau khi xử lý các sự kiện, di chuyển đầu rắn một bước theo direction.

Nhấn Chơi: đầu rắn đi sang phải và tạm thời ra khỏi cửa sổ. 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()


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


head = (5, 9)

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


    screen.fill((30, 30, 46))
    draw_cell(head, (180, 255, 160))
    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