/ / Cách triển khai hệ thống y tế trong PyGame

Cách triển khai hệ thống y tế trong PyGame

Việc triển khai hệ thống sức khỏe trong trò chơi có thể nâng cao đáng kể trải nghiệm chơi trò chơi và thêm một lớp thử thách và chiến lược bổ sung. PyGame cung cấp một bộ công cụ và chức năng mạnh mẽ để kết hợp hệ thống y tế, giúp dễ dàng tạo trải nghiệm tương tác.



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

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt pip trên hệ thống của mình. Sử dụng lệnh này để cài đặt pygame thư viện:

 pip install pygame 

Sau đó, tạo một tệp có tên đơn giản-game.py và bắt đầu bằng cách tạo một trò chơi đơn giản trong đó người chơi có thể di chuyển sang trái và phải.

Mã được sử dụng trong bài viết này có sẵn trong kho lưu trữ GitHub này và bạn được sử dụng miễn phí theo giấy phép MIT.

Trong vòng lặp trò chơi cơ bản này, mục tiêu của người chơi là tránh va chạm với kẻ thù.

 import pygame
import random


pygame.init()


window_width, window_height = 800, 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Health System Demo")


player_width, player_height = 50, 50
player_x, player_y = window_width // 2, window_height - player_height - 10
player_speed = 1


enemy_width, enemy_height = 50, 50
enemy_x, enemy_y = random.randint(0, window_width - enemy_width), 0
enemy_speed = 0.3


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

    
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] and player_x < window_width - player_width:
        player_x += player_speed

    
    enemy_y += enemy_speed

    
    window.fill((0, 0, 0))
    pygame.draw.rect(window, (255, 0, 0),
                     (player_x, player_y,
                      player_width, player_height))
    pygame.draw.rect(window, (0, 255, 0),
                     (enemy_x, enemy_y,
                      enemy_width, enemy_height))
    pygame.display.update()

pygame.quit()

Chạy mã và bạn sẽ thấy một cửa sổ có nhân vật người chơi mà bạn có thể điều khiển bằng các phím mũi tên trái và phải.

trò chơi arcade đơn giản với người chơi và đối tượng kẻ thù

Bây giờ bạn đã thiết lập trò chơi cơ bản, hãy xác định các biến và hằng số liên quan đến sức khỏe của người chơi. Bạn có thể sử dụng một hệ thống sức khỏe đơn giản nơi bạn có thể biểu thị sức khỏe của người chơi bằng một giá trị số. Bạn cũng có thể xác định các hằng số cho lượng máu tối đa của người chơi và lượng sát thương mà kẻ thù gây ra.

Đặt sức khỏe ban đầu của người chơi thành 100, xác định sức khỏe tối đa là 100 và đặt sát thương của kẻ thù thành 20. Các giá trị này có thể được điều chỉnh theo nhu cầu cụ thể của trò chơi của bạn.

 
player_health = 100
max_health = 100
enemy_damage = 20

Thực hiện thiệt hại và cơ chế chữa bệnh

Để giới thiệu cơ chế sát thương và hồi máu, bạn cần phát hiện va chạm giữa người chơi và kẻ thù và xử lý các thay đổi về sức khỏe tương ứng. Bạn cũng có thể thực hiện cơ chế hồi máu cho người chơi khi họ rời khỏi màn hình.

Kiểm tra xem có va chạm giữa người chơi và kẻ thù hay không bằng cách so sánh các hình chữ nhật bao quanh của họ. Nếu phát hiện va chạm, hãy trừ đi giá trị sát thương của kẻ thù từ sức khỏe của người chơi.

Ngoài ra, nếu người chơi di chuyển khỏi đầu màn hình (player_y < 0), cộng 10 vào máu của họ và đảm bảo rằng nó không vượt quá máu tối đa. Điều này tạo ra một cơ chế chữa bệnh và đặt lại vị trí của người chơi ở cuối màn hình.

Tạo một tệp mới có tên dam-and-healing.py và thêm mã với các bản cập nhật bên dưới:

 
if player_x < enemy_x + enemy_width and
           player_x + player_width > enemy_x and
           player_y < enemy_y + enemy_height
           and player_y + player_height > enemy_y:
   player_health -= enemy_damage
   print(player_health)


if player_y < 0:
   player_health += 10
   print(player_health)
   if player_health > max_health:
       player_health = max_health
       player_y = window_height - player_height - 10

Dưới đây là đầu ra:

kẻ thù rơi vào đối tượng người chơi

Quản lý cái chết của người chơi và kịch bản kết thúc trò chơi

Để xử lý các tình huống người chơi chết và kết thúc trò chơi, bạn cần kiểm tra xem sức khỏe của người chơi có bằng không hay không. Nếu có, hiển thị một trò chơi kết thúc nhắn tin và khởi động lại trò chơi.

Thêm một kiểm tra để xem liệu sức khỏe của người chơi có giảm xuống dưới hoặc bằng 0 hay không. Nếu điều kiện này là đúng, in trò chơi kết thúc và đặt lại sức khỏe và vị trí của người chơi.

Tạo một tệp mới có tên quản lý người chơi-chết.py và sửa đổi mã với các bản cập nhật bên dưới:

 


if player_health <= 0:
    print("Game Over")
    player_health = max_health
    player_x = window_width // 2
    player_y = window_height - player_height - 10

Bao gồm các tính năng bổ sung

Để tăng cường hơn nữa hệ thống y tế, bạn có thể kết hợp các tính năng bổ sung. Dưới đây là một ví dụ:

tăng sức mạnh

Xác định các thuộc tính của power-up, chẳng hạn như kích thước và vị trí của nó. Ngoài ra, hãy đặt giá trị sức khỏe mà người chơi sẽ nhận được khi va chạm với sức mạnh.

Trong vòng lặp trò chơi, phát hiện va chạm giữa người chơi và thiết bị tăng sức mạnh. Nếu xảy ra va chạm, hãy tăng sức khỏe của người chơi bằng giá trị sức khỏe của sức mạnh, đảm bảo rằng nó không vượt quá mức sức khỏe tối đa. Sau đó đặt lại vị trí bật nguồn ngẫu nhiên trên màn hình. Cuối cùng, vẽ đối tượng tăng sức mạnh trên màn hình bằng hình chữ nhật màu xanh lam.

Tạo một tệp mới có tên power-up.py và thêm mã với các bản cập nhật bên dưới:

 
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50


if player_x < power_up_x + power_up_width and
      player_x + player_width > power_up_x
        and player_y < power_up_y + power_up_height
         and player_y + player_height > power_up_y:
    player_health += power_up_health_value
    if player_health > max_health:
        player_health = max_health
    power_up_x, power_up_y = 200,200


pygame.draw.rect(window, (0, 0, 255),
                    (power_up_x, power_up_y,
                     power_up_width,
                     power_up_height))

Dưới đây là đầu ra:

đối tượng người chơi với kẻ thù và đối tượng tăng sức mạnh

Đối với mỗi tính năng bổ sung, bạn có thể xác định các biến và hằng số cần thiết, đồng thời triển khai các cơ chế tương ứng trong vòng lặp trò chơi.

Thực hành tốt nhất cho hệ thống y tế

Khi triển khai hệ thống y tế trong PyGame, hãy ghi nhớ các phương pháp hay nhất sau:

Thực hiện các hệ thống hướng sự kiện

Thay vì liên tục kiểm tra các va chạm hoặc thay đổi tình trạng trong vòng lặp trò chơi, hãy cân nhắc sử dụng các hệ thống hướng sự kiện. PyGame cung cấp các khả năng xử lý sự kiện, cho phép bạn kích hoạt các hành động liên quan đến sức khỏe dựa trên các sự kiện cụ thể, chẳng hạn như sự kiện va chạm hoặc sự kiện lấy hàng khi tăng sức mạnh.

Cân bằng giá trị sức khỏe

Điều chỉnh giá trị sức khỏe, giá trị sát thương và tỷ lệ hồi máu trong trò chơi của bạn để đảm bảo trải nghiệm chơi trò chơi cân bằng. Việc chơi thử và thu thập phản hồi từ người chơi có thể giúp bạn tinh chỉnh các giá trị này để có lối chơi tối ưu.

Cung cấp phản hồi

Đảm bảo rằng người chơi nhận được phản hồi rõ ràng và có ý nghĩa về tình trạng sức khỏe của họ. Hiển thị thanh sức khỏe nổi bật trên màn hình, sử dụng các dấu hiệu trực quan như thay đổi màu sắc hoặc hoạt ảnh để biểu thị thiệt hại hoặc khả năng hồi phục, đồng thời cung cấp tín hiệu âm thanh hoặc hình ảnh khi sức khỏe của người chơi đạt đến mức nguy kịch.

Bằng cách làm theo những phương pháp hay nhất này, bạn có thể tạo ra một hệ thống sức khỏe mạnh mẽ và hấp dẫn, góp phần tạo nên trải nghiệm chơi trò chơi sống động.

Làm cho trò chơi hấp dẫn hơn với Health Bar

Việc triển khai một hệ thống sức khỏe không chỉ tăng thêm một lớp thử thách mà còn khiến trò chơi trở nên hấp dẫn hơn đối với người chơi. Bằng cách kết hợp các biểu thị sức khỏe trực quan, chẳng hạn như thanh sức khỏe, người chơi có thể dễ dàng đánh giá tình trạng hiện tại của họ và đưa ra các quyết định chiến lược. Hơn nữa, việc thêm các cấp độ vào trò chơi của bạn có thể nâng cao hơn nữa trải nghiệm chơi trò chơi.

Similar Posts

Leave a Reply

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