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.
Thử thách
DễCho rắn di chuyển từng ô một.
- Trước vòng lặp, đặt
direction = (1, 0). - 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
3Lưới và danh sách
Lưới ôTừng bước mộtTự luyện tập: Playground Pygame