Đồ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.
Thử thách
DễCho trò chơi chạy ở tốc độ 60 khung hình mỗi giây.
- Bên dưới dòng
set_caption, tạo một đồng hồ:clock = pygame.time.Clock(). - Ở 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
1Di chuyển hình vuông
Mở cửa sổTô nền4Di chuyển theo thời gian
Thời gian deltaPixel mỗi giâyVector2Gia tốc và ma sátDi chuyển vòng quanh màn hìnhTự luyện tập: Playground Pygame