/ / Cách tạo Power-Ups và Sưu tầm trong Pygame

Cách tạo Power-Ups và Sưu tầm trong Pygame

Tăng sức mạnh và sưu tầm đóng một vai trò quan trọng trong việc nâng cao lối chơi và làm cho trò chơi hấp dẫn hơn. Bằng cách thêm các yếu tố này vào các dự án Pygame của mình, bạn có thể tạo ra các thử thách độc đáo, tăng động lực cho người chơi và tạo cơ hội cho việc ra quyết định chiến lược.


May mắn thay, Pygame cung cấp các cách linh hoạt để triển khai tăng sức mạnh và sưu tầm tương đối dễ dàng.


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 

Bắt đầu bằng cách thiết lập một trò chơi đơn giản, trong đó người chơi có thể di chuyển sang trái và phải trong khi tránh kẻ thù.

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.

Điều này sẽ đóng vai trò là nền tảng để thêm sức mạnh và đồ sưu tầm. Đây là một đoạn mã ví dụ:

 import pygame
import random


pygame.init()


window_width = 800
window_height = 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("My Game")


player_width = 50
player_height = 50
player_x = (window_width - player_width) // 2
player_y = window_height - player_height - 10
player_speed = 5


enemy_width = 50
enemy_height = 50
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = 50
enemy_speed = 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
    if enemy_y > window_height:
        enemy_x = random.randint(0, window_width - enemy_width)
        enemy_y = 0

    
    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):
        running = False

    
    window.fill((0, 0, 0))

    player_pos = (player_x, player_y,
                  player_width, player_height)
    enemy_pos = (enemy_x, enemy_y,
                  enemy_width, enemy_height)

    
    pygame.draw.rect(window, (255, 255, 255), player_pos)

    
    pygame.draw.rect(window, (255, 0, 0), enemy_pos)

    
    pygame.display.update()


pygame.quit()

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

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

Tạo sưu tầm

Để tạo đồ sưu tầm, hãy thêm một đồ vật mà khi va chạm với người chơi sẽ biến mất và cộng 10 điểm vào điểm số. Đối với điều này, bạn phải kiểm tra sự va chạm giữa người chơi và đồ sưu tầm. Đây là phiên bản cập nhật của mã bao gồm đồ sưu tầm. Tạo một tệp mới có tên sưu tầm.py và thêm mã với các bản cập nhật bên dưới:

 
collectible_width = 30
collectible_height = 30
collectible_x = random.randint(0, window_width - collectible_width)
collectible_y = 50


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


if (player_x < collectible_x + collectible_width) and
                        (player_x + player_width > collectible_x) and
                        (player_y < collectible_y + collectible_height) and
                        (player_y + player_height > collectible_y):
        collectible_x = random.randint(0, window_width - collectible_width)
        collectible_y = 50
        score += 10

collectible_pos = (collectible_x, collectible_y)
pygame.draw.circle(window, (0, 255, 0), collectible_pos, collectible_width)


score_text = font.render("Score: " + str(score), True, (255, 255, 255))
window.blit(score_text, (10, 10))

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

trò chơi pygame với đối tượng thu thập, kẻ thù và người chơi

Tạo Power-Ups

Giờ đây, bạn có thể giới thiệu các tính năng tăng sức mạnh cho trò chơi của mình theo logic sau. Khi người chơi va chạm với một vật thể tăng sức mạnh, sức mạnh sẽ biến mất. Nếu người chơi va chạm với kẻ thù trong khi tăng sức mạnh đang hoạt động, kẻ thù sẽ bị tiêu diệt. Tạo một tệp mới có tên powerups.py và thêm mã với các bản cập nhật bên dưới:

 
powerup_width = 40
powerup_height = 40
powerup_x = random.randint(0, window_width - powerup_width)
powerup_y = 50
shield_active = False
shield_timer = 0


collision_powerup = (player_x < powerup_x + powerup_width) and
                    (player_x + player_width > powerup_x) and
                    (player_y < powerup_y + powerup_height) and
                    (player_y + player_height > powerup_y)

if collision_powerup:
    powerup_x = random.randint(0, window_width - powerup_width)
    powerup_y = 50
    shield_active = True
    shield_timer = pygame.time.get_ticks()


if shield_active:
    current_time = pygame.time.get_ticks()
    if current_time - shield_timer > 5000:
        shield_active = False


x1 = powerup_x + powerup_width / 2
y1 = powerup_y
x2 = powerup_x
y2 = powerup_y + powerup_height
x3 = powerup_x + powerup_width
y3 = powerup_y + powerup_height


pygame.draw.polygon(window, (255, 255, 0), [(x1, y1), (x2, y2), (x3, y3)])


collision_shield = shield_active and
                   (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)

if collision_shield:
    enemy_x = random.randint(0, window_width - enemy_width)
    enemy_y = 0

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

trò chơi pygame với đối tượng tăng sức mạnh, thu thập, kẻ thù và người chơi

Đặt hẹn giờ cho Power-Ups

Để làm cho phần tăng sức mạnh biến mất sau một thời gian nhất định và hồi sinh ở một vị trí ngẫu nhiên, bạn có thể giới thiệu bộ hẹn giờ. Tạo một tệp mới có tên hẹn giờ.py và thêm mã với các bản cập nhật bên dưới:

 
powerup_respawn_timer = 0


if not shield_active:
    current_time = pygame.time.get_ticks()
    if current_time - powerup_respawn_timer > 3000:
        powerup_x = random.randint(0, window_width - powerup_width)
        powerup_y = 50
        powerup_respawn_timer = pygame.time.get_ticks()

Hình dung Bộ hẹn giờ bật nguồn

Để cung cấp biểu diễn trực quan về bộ hẹn giờ bật nguồn, bạn có thể vẽ một đối tượng hình chữ nhật sẽ cạn kiệt dần theo thời gian. Tạo một tệp mới có tên thanh.py và thêm mã với các bản cập nhật bên dưới:

 
bar_width = 100
bar_height = 10
bar_x = window_width - bar_width - 10
bar_y = 10


if shield_active:
   current_time = pygame.time.get_ticks()
   elapsed_time = current_time - shield_timer
   timer_progress = (5000 - elapsed_time) / 5000
   
   bar_rect = pygame.Rect(bar_x, bar_y, bar_width * timer_progress, bar_height)
   pygame.draw.rect(window, (0, 255, 255), bar_rect)

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

thanh hẹn giờ trong pygame với người chơi, kẻ thù, sức mạnh và đối tượng sưu tầm

Các phương pháp hay nhất để thêm Power-Ups và Sưu tầm

Khi nói đến việc kết hợp tăng sức mạnh và sưu tầm vào các dự án Pygame của bạn, việc tuân theo các phương pháp hay nhất có thể nâng cao đáng kể trải nghiệm chơi trò chơi tổng thể. Xem xét các nguyên tắc sau để đảm bảo triển khai cân bằng và hấp dẫn:

Phân biệt thị giác

Điều cần thiết là tạo ra sự khác biệt trực quan rõ ràng giữa tăng sức mạnh, đồ sưu tầm và các yếu tố trò chơi khác. Sử dụng các màu sắc, hình dạng hoặc biểu tượng khác nhau để người chơi dễ dàng nhận ra chúng. Sự rõ ràng về hình ảnh này giúp người chơi xác định và ưu tiên các mục tiêu của họ, làm cho trò chơi trở nên trực quan và thú vị hơn.

Cân bằng và Thử thách

Cố gắng duy trì trải nghiệm chơi trò chơi cân bằng và đầy thử thách. Điều chỉnh tần suất tăng sức mạnh và xuất hiện bộ sưu tập để tránh áp đảo người chơi hoặc khiến trò chơi trở nên quá dễ dàng. Việc tìm kiếm sự cân bằng phù hợp đòi hỏi phải thử nghiệm và lặp đi lặp lại cẩn thận.

Cân nhắc phản hồi của người chơi và tinh chỉnh tỷ lệ xuất hiện để tạo ra trải nghiệm hấp dẫn và thỏa mãn.

Phản hồi và Phần thưởng

Cung cấp phản hồi và phần thưởng ngay lập tức khi người chơi thu thập sức mạnh hoặc đồ sưu tầm sẽ nâng cao cảm giác hoàn thành và động lực. Cân nhắc thêm hiệu ứng hình ảnh, tín hiệu âm thanh hoặc hoạt ảnh để biểu thị lượt mua thành công.

Phần thưởng cho người chơi bằng điểm, mạng sống thêm hoặc mở khóa các khả năng đặc biệt sẽ tăng thêm sự phấn khích và khuyến khích người chơi tích cực tìm kiếm những yếu tố này.

Bộ hẹn giờ và Thời lượng

Thực hiện bộ hẹn giờ và thời lượng tăng sức mạnh để duy trì sự công bằng và ra quyết định chiến lược. Tăng sức mạnh nên có thời lượng giới hạn để ngăn người chơi trở nên quá sức trong thời gian dài.

Cân bằng thời lượng là rất quan trọng, vì thời lượng quá ngắn có thể gây cảm giác quá tải, trong khi quá dài có thể làm trò chơi mất cân bằng. Kiểm tra các khoảng thời gian khác nhau để tìm điểm thích hợp cho mỗi lần tăng sức mạnh.

Kiểm tra và Lặp lại

Playtesting là một bước quan trọng trong quá trình phát triển. Kiểm tra trò chơi của bạn kỹ lưỡng với các cấu hình và mức độ khó khác nhau để đảm bảo rằng các vật phẩm tăng sức mạnh và đồ sưu tầm được cân bằng phù hợp và tích hợp vào trò chơi.

Chú ý đến phản hồi của người chơi và lặp lại dựa trên trải nghiệm của họ. Cách tiếp cận lặp đi lặp lại này cho phép bạn tinh chỉnh hệ thống, tạo ra trải nghiệm chơi trò chơi thú vị và hấp dẫn.

Làm cho trò chơi hấp dẫn hơn với đồ sưu tầm

Thêm sức mạnh và đồ sưu tầm vào các dự án Pygame của bạn có thể nâng cao đáng kể trải nghiệm chơi trò chơi tổng thể. Những yếu tố này giới thiệu các lựa chọn chiến lược, thưởng cho người chơi và tăng động lực. Đồ sưu tầm có thể được sử dụng để mở khóa các tính năng, cấp độ hoặc khả năng mới, trong khi tăng sức mạnh mang lại lợi thế tạm thời và cơ chế chơi trò chơi độc đáo.

Bằng cách cẩn thận thiết kế và triển khai các tính năng này, bạn có thể tạo ra các trò chơi nhập vai, thử thách và thú vị hơn cho người chơi.

Similar Posts

Leave a Reply

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