Menu
CoddyTech

Theo con trỏ

Thuộc phần Vòng lặp trò chơi trong hành trình Pygame của Coddy. Bài học 13 trên 35.

Chương này sẽ tạo game Gem Hunt, một trò chơi bạn điều khiển bằng chuột. Hình thoi xanh nhạt là viên ngọc: một đa giác có bốn đỉnh được tính từ gx và gy.

pygame.mouse.get_pos() trả về vị trí con trỏ trong cửa sổ dưới dạng (x, y), được đo từ góc trên bên trái như mọi thứ khác. Đọc vị trí này trong vòng lặp để nó luôn được cập nhật ở mỗi khung hình:

mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)

Dòng đầu tiên giải nén tuple thành hai biến. Dòng thứ hai vẽ một vòng tròn tại đó để người chơi thấy con trỏ đang chỉ vào đâu. Hãy vẽ vòng tròn sau cùng, sau viên ngọc, nếu không viên ngọc sẽ che mất nó.

Đọc vị trí một lần trước vòng lặp, vòng tròn sẽ đứng yên tại nơi con trỏ ở lúc trò chơi bắt đầu.

challenge icon

Thử thách

Dễ

Vẽ một vòng tròn đi theo con trỏ chuột.

  1. Trong vòng lặp, sau khi vẽ viên ngọc, hãy đọc vị trí con trỏ bằng pygame.mouse.get_pos().
  2. Vẽ một vòng tròn màu trắng tại đó với (240, 240, 240): bán kính 10 và độ rộng 2.

Nhấn Chơi rồi di chuyển con trỏ trên trò chơi: vòng tròn sẽ đi theo con trỏ. 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("Gem Hunt")
clock = pygame.time.Clock()

gx, gy = 225, 165

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

    screen.fill((30, 30, 46))
    gem_points = [(gx + 15, gy), (gx + 30, gy + 15), (gx + 15, gy + 30), (gx, gy + 15)]
    pygame.draw.polygon(screen, (80, 220, 255), gem_points)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tất cả bài học trong Vòng lặp trò chơi

Tự luyện tập: Playground Pygame