Menu
CoddyTech

Đồng hồ

Thuộc phần Vòng lặp trò chơi trong hành trình Pygame của Coddy. Bài học 4 trên 35.

Vòng lặp (loop) chạy nhanh hết mức máy tính có thể: hàng nghìn khung hình mỗi giây trên máy nhanh, ít hơn trên máy chậm. Trò chơi cần chạy ở cùng tốc độ trên mọi máy.

pygame.time.Clock giúp giữ nhịp. Tạo một đối tượng trước vòng lặp, rồi gọi clock.tick(60) một lần ở cuối mỗi lượt. Hàm này chờ đủ lâu để vòng lặp chạy tối đa 60 lần mỗi giây.

clock = pygame.time.Clock()

running = True
while running:
    # Xử lý sự kiện, vẽ, cập nhật màn hình
    clock.tick(60)

60 khung hình mỗi giây là tốc độ thường dùng để chuyển động mượt mà. Từ giờ, thứ gì di chuyển 4 pixel mỗi khung hình sẽ di chuyển 240 pixel mỗi giây.

challenge icon

Thử thách

Dễ

Cho trò chơi chạy ở tốc độ 60 khung hình mỗi giây.

  1. Bên dưới dòng set_caption, tạo một đồng hồ: clock = pygame.time.Clock().
  2. Ở dòng cuối cùng của vòng lặp, sau lệnh flip, gọi clock.tick(60).

Nhấn “Chơi”: hình vuông trông vẫn như cũ, giờ được vẽ 60 lần mỗi giây. Sau đó nhấn “Kiểm tra”.

Tự làm thử

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")

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

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (220, 160, 40, 40))
    pygame.display.flip()

pygame.quit()

Tất cả bài học trong Vòng lặp trò chơi

Tự luyện tập: Playground Pygame