Làm thế nào để thiết lập Game Loop trong PygGame?

Category: Pygame

Trong bài viết này, chúng ta sẽ xem cách thiết lập vòng lặp trò chơi trong PyGame. Vòng lặp trò chơi là vòng lặp giúp trò chơi tiếp tục chạy. Nó sẽ tiếp tục chạy cho đến khi người dùng muốn thoát. Trong khi vòng lặp trò chơi đang chạy, nó chủ yếu thực hiện các tác vụ sau:

  1. Cập nhật cửa sổ trò chơi của chúng tôi để hiển thị những thay đổi trực quan

  2. Cập nhật trạng thái trò chơi của chúng tôi dựa trên thông tin đầu vào của người dùng

  3. Xử lý các loại sự kiện khác nhau

  4. Giữ cho cửa sổ trò chơi chạy

Vòng lặp trò chơi đơn giản là vòng lặp while chỉ có một điều kiện để kiểm tra xem điều kiện boolean để giữ cho trò chơi chạy có đúng không.

Thiết lập Vòng lặp trò chơi

Bước 1: Khai báo một biến Boolean thành true để kiểm tra xem người chơi có muốn tiếp tục chơi trò chơi hay không.  

keepGameRunning=true

Bước 2: Tạo một vòng lặp while và kiểm tra biến Boolean ở trên xem nó có đúng hay không. Nếu đúng, vòng lặp sẽ tiếp tục chạy, điều này cho thấy vòng lặp trò chơi của chúng ta vẫn tiếp tục chạy. Trong vòng lặp while này, hãy kiểm tra các sự kiện và nếu sự kiện bị thoát, hãy đặt biến ở trên thành false để thoát khỏi vòng lặp trò chơi và kết thúc cửa sổ pygame.

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

Dưới đây là bản triển khai đầy đủ.

Trong đoạn mã bên dưới, chúng ta đang tạo một vòng lặp trò chơi đơn giản để tạo một cửa sổ pygame và kiểm tra xem loại sự kiện có phải là thoát hay không và nếu đúng thì thoát trò chơi.

# nhập gói pygame
import pygame

# đang khởi tạo mô-đun đã nhập
pygame.init()

# Hiển thị cửa sổ có chiều cao
# 500 và chiều rộng 400
pygame.display.set_mode((400, 500))

# Đặt tên cho cửa sổ
pygame.display.set_caption('GeeksforGeeks')

# tạo giá trị bool để kiểm tra
# trò chơi có đang chạy không
running = True

# Vòng lặp trò chơi
# Giữ trò chơi chạy cho đến khi chạy đúng
while running:
  
# Kiểm tra sự kiện nếu người dùng đã đẩy
# bất kỳ sự kiện nào trong hàng đợi
    for event in pygame.event.get():
      
# nếu sự kiện có kiểu quit thì đặt
# đang chạy bool thành false
        if event.type == pygame.QUIT:
            running = False

Đầu ra:

Trong đoạn mã dưới đây, chúng ta đã thêm một tác vụ nữa vào vòng lặp trò chơi, tức là cập nhật màn hình trong mỗi vòng lặp. Ở đây, chúng ta thay đổi màu nền cho mỗi vòng lặp bằng cách cập nhật màn hình trong mỗi vòng lặp.

# nhập gói pygame
import pygame

# đang khởi tạo mô-đun đã nhập
pygame.init()

# Hiển thị cửa sổ có chiều cao
# 500 và chiều rộng 400
window = pygame.display.set_mode((400, 500))

# tạo giá trị bool để kiểm tra
# trò chơi có đang chạy không
running = True

# thiết lập biến để lưu trữ màu
color = "red"

# giữ trò chơi chạy cho đến khi chạy đúng
while running:
  
# Kiểm tra sự kiện nếu người dùng đã đẩy
# bất kỳ sự kiện nào trong hàng đợi
    for event in pygame.event.get():
        
# nếu sự kiện có kiểu quit thì đặt
# chạy bool thành false
        if event.type == pygame.QUIT:
            running = False
    
# đặt màu nền cho cửa sổ của chúng ta
    window.fill(color)
    
# Cập nhật cửa sổ của chúng tôi
    pygame.display.flip()
    
# nếu màu là đỏ thì đổi thành xanh lá cây và
# ngược lại
    if(color == "red"):
        color = "green"
        
    else:
        color = "red"

Đầu ra:

Published on Jul 28, 2025

Related Posts