/ / Hiển thị và cập nhật Điểm trò chơi trong Pygame

Hiển thị và cập nhật Điểm trò chơi trong Pygame

Trong hướng dẫn này, bạn sẽ học cách hiển thị và cập nhật điểm trò chơi trong Pygame, một thư viện Python phổ biến để phát triển trò chơi. Cuối cùng, bạn sẽ có thể tạo một trò chơi nhảy cầu đơn giản và hiển thị điểm số của người chơi trên màn hình khi họ tiến bộ. Trò chơi theo dõi đầu vào bàn phím để bạn có thể di chuyển trình phát sang trái và phải bằng các phím mũi tên.


Tạo một trò chơi đơn giản

Trước khi bạn có thể hiển thị và cập nhật điểm số trong Pygame, trước tiên bạn cần tạo một trò chơi để làm việc. Trong hướng dẫn này, bạn sẽ tạo một trò chơi đơn giản trong đó người chơi có thể di chuyển sang trái hoặc phải. Nhưng trước đó, bạn nên cài đặt pip trên thiết bị của mình. Sau khi cài đặt pip, hãy chạy lệnh bên dưới để cài đặt mô-đun pygame:

 pip install pygame 

Để bắt đầu, hãy nhập các mô-đun cần thiết và thiết lập cấu trúc cơ bản của trò chơi:

 import pygame, sys
pygame.init()


screen = pygame.display.set_mode((750, 450))


clock = pygame.time.Clock()


player = pygame.Rect(100, 200, 50, 50)


obstacle = pygame.Rect(200, 200, 50, 50)


while True:
   
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
          pygame.quit()
          sys.exit()

      if event.type == pygame.KEYDOWN:
          if event.key == pygame.K_LEFT:
              player.x -= 10
          elif event.key == pygame.K_RIGHT:
              player.x += 10

  

  
  screen.fill((0, 0, 0))
  pygame.draw.rect(screen, (255, 0, 0), player)
  pygame.draw.rect(screen, (0, 255, 0), obstacle)

  
  pygame.display.flip()

  
  clock.tick(60)

Với mã bộ xương này, trò chơi cơ bản của bạn có thể chơi được. Nhấn trái hoặc phải để di chuyển nhân vật người chơi, được biểu thị bằng hình vuông màu đỏ.

trò chơi pygame đơn giản với hai người chơi

Hiển thị và cập nhật điểm trò chơi

Bây giờ bạn đã thiết lập một trò chơi cơ bản, hãy thêm hệ thống tính điểm và hiển thị điểm trên màn hình.

Thiết lập Pygame để hiển thị văn bản

Để hiển thị văn bản trong Pygame, trước tiên chúng ta cần nhập các mô-đun cần thiết và khởi tạo mô-đun phông chữ. Để thực hiện việc này, hãy sử dụng đoạn mã sau ở đầu tập lệnh của bạn:

 import pygame
import sys
import os

pygame.init()
pygame.font.init()

Mô-đun pygame.font cho phép bạn sử dụng khả năng hiển thị văn bản của Pygame và hàm pygame.init() khởi tạo mô-đun phông chữ.

Tạo một hệ thống tính điểm cơ bản

Tiếp theo, tạo một hệ thống tính điểm cơ bản cho trò chơi của bạn. Để làm như vậy, hãy khai báo và khởi tạo hai biến: score và score_increment. Biến score sẽ theo dõi điểm hiện tại của người chơi và biến score_increment sẽ chỉ định số điểm sẽ tăng lên mỗi khi người chơi chạm vào chướng ngại vật.

Thêm mã sau vào đầu tập lệnh của bạn, bên dưới phần nhập:

 score = 0
score_increment = 10

Tiếp theo, cập nhật điểm số khi trò chơi diễn ra. Trong vòng lặp trò chơi, bạn có thể kiểm tra xem nhân vật của người chơi có va chạm với chướng ngại vật hay không. Nếu đúng như vậy, hãy tăng điểm theo số lượng được chỉ định trong biến score_increment.

Cập nhật vòng lặp trò chơi để bao gồm mã sau:

 
if player.colliderect(obstacle):
    score += score_increment

Mã này kiểm tra xem nhân vật của người chơi có va chạm với chướng ngại vật hay không. Nếu đúng như vậy, nó sẽ tăng điểm theo số tiền đã chỉ định.

Hiển thị Điểm trên Màn hình Với Mô-đun Phông chữ

Bây giờ chúng ta đã có một hệ thống tính điểm cơ bản, hãy hiển thị điểm số trên màn hình bằng cách sử dụng mô-đun phông chữ.

Trước tiên, hãy thiết lập đối tượng phông chữ bằng cách thêm đoạn mã sau vào đầu vòng lặp trò chơi:

 
font = pygame.font.Font(None, 36)

Mã này tạo một đối tượng phông chữ có kích thước 36 pixel và không có họ phông chữ được chỉ định. Bạn có thể tùy chỉnh phông chữ và kích thước phông chữ bằng cách chỉ định một tệp phông chữ và kích thước khác trong hàm Font().

Tiếp theo, hãy vẽ tỷ số lên màn hình. Thêm đoạn mã sau vào vòng lặp trò chơi, sau khi bạn đã cập nhật trạng thái trò chơi và lấp đầy màn hình:

 
score_text = font.render(f'Score: {score}', True, (255, 255, 255))
screen.blit(score_text, (10, 10))

Mã này sử dụng phương thức render() của đối tượng phông chữ để tạo bề mặt văn bản chứa điểm số, sau đó làm mờ (vẽ) bề mặt văn bản lên màn hình ở vị trí (10, 10).

Tùy chỉnh Giao diện của Văn bản Tổng phổ

Cuối cùng, tùy chỉnh giao diện của văn bản điểm số bằng cách chọn phông chữ và cỡ chữ cũng như thay đổi màu của văn bản.

Để chọn một phông chữ và kích thước phông chữ cụ thể, hãy chuyển tệp phông chữ và kích thước làm đối số cho hàm Font():

 font = pygame.font.Font('arial.ttf', 48) 

Bạn có thể dễ dàng tải xuống các tệp phông chữ khác nhau từ internet. Sau khi tải xuống, chỉ cần đặt tệp phông chữ vào thư mục gốc của thư mục làm việc của bạn.

Để thay đổi màu của văn bản, hãy chuyển một bộ màu làm đối số thứ ba cho phương thức render():

 score_text = font.render(f'Score: {score}', True, (0, 255, 0)) 

Và thế là xong! Với những thay đổi này, giờ đây bạn sẽ có một hệ thống điểm trò chơi đầy đủ chức năng hiển thị điểm trên màn hình và cập nhật điểm khi người chơi tiến bộ trong trò chơi. Bạn có thể tùy chỉnh thêm hình thức của văn bản tổng phổ bằng cách thử nghiệm với các họ phông chữ, kích cỡ và màu sắc khác nhau.

Theo dõi điểm trong trò chơi

Dưới đây là mã hoạt động đầy đủ, bạn cũng có thể tìm thấy mã trên repo GitHub này.

 import pygame
import os

pygame.init()
pygame.font.init()

score = 0
score_increment = 10


screen = pygame.display.set_mode((750, 450))


clock = pygame.time.Clock()


player = pygame.Rect(100, 200, 50, 50)


obstacle = pygame.Rect(200, 200, 50, 50)


while True:
    font = pygame.font.Font(None, 36)
    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player.x -= 10
            elif event.key == pygame.K_RIGHT:
                player.x += 10
    
    
    if player.colliderect(obstacle):
        score += score_increment

    
    
    screen.fill((0, 0, 0))
    pygame.draw.rect(screen, (255, 0, 0), player)
    pygame.draw.rect(screen, (0, 255, 0), obstacle)

    
    score_text = font.render(f'Score: {score}', True, (255, 255, 255))
    screen.blit(score_text, (10, 10))
    
    
    pygame.display.flip()
    
    
    clock.tick(60)

Mã này tạo một cửa sổ có kích thước 750×450 pixel, nhân vật người chơi và chướng ngại vật. Nó sử dụng một vòng lặp trò chơi để xử lý các sự kiện, cập nhật trạng thái và vẽ trò chơi lên màn hình. Nó cũng bao gồm một hệ thống tính điểm giúp tăng điểm mười điểm mỗi khi nhân vật của người chơi va chạm với chướng ngại vật, cũng như một đối tượng phông chữ và mã kết xuất văn bản để hiển thị điểm trên màn hình.

Trong phần xử lý sự kiện, mã cũng bao gồm chức năng di chuyển nhân vật người chơi sang trái và phải bằng các phím mũi tên.

Vòng lặp trò chơi bao gồm mã để cập nhật màn hình và giới hạn tốc độ khung hình ở mức 60 FPS, đảm bảo trò chơi chạy mượt mà.

Nhìn chung, mã này cung cấp một ví dụ cơ bản về cách hiển thị và cập nhật điểm số trò chơi trong Pygame, đồng thời có thể được tùy chỉnh và mở rộng thêm để tạo các trò chơi phức tạp và hấp dẫn hơn.

trò chơi pygame đơn giản với số điểm tăng

Tạo các trò chơi khác nhau bằng Pygame

Pygame là một thư viện mạnh mẽ và dễ sử dụng để tạo trò chơi bằng Python. Với tập hợp các tính năng và khả năng phong phú, bạn có thể tạo nhiều loại trò chơi, từ các trò chơi nhảy cầu và đi cảnh đơn giản đến các trò chơi nhập vai và phức tạp hơn.

Cho dù bạn là người mới bắt đầu hay nhà phát triển trò chơi có kinh nghiệm, Pygame là một lựa chọn tuyệt vời để tạo trò chơi hấp dẫn và thú vị.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *