Menu
CoddyTech

Các phím di chuyển Mặt Trăng

Thuộc phần Python trong cửa sổ trò chơi trong hành trình Pygame của Coddy. Bài học 12 trên 33.

pygame.key.get_pressed() cho bạn biết phím nào đang được nhấn trong khung hình này. Lưu kết quả một lần trong mỗi khung hình, rồi kiểm tra một phím:

keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    moon_x = moon_x - 4
if keys[pygame.K_RIGHT]:
    moon_x = moon_x + 4

keys[pygame.K_LEFT] là True khi bạn đang nhấn phím mũi tên trái và là False nếu không, vì vậy câu lệnh if bên dưới chạy trong mọi khung hình khi phím đang được nhấn. Giữ phím mũi tên phải trong một giây, mặt trăng sẽ di chuyển 240 pixel.

Mỗi phím có một tên: K_UP, K_DOWN, K_SPACE, K_a cho phím A, K_d cho phím D.

Dùng hai câu lệnh if riêng biệt, mỗi câu lệnh cho một phím, để kiểm tra từng phím độc lập. Đặt các câu lệnh if trong phần thay đổi, sau vòng lặp sự kiện.

challenge icon

Thử thách

Dễ

Di chuyển mặt trăng bằng các phím mũi tên.

  1. Trong phần thay đổi, đọc các phím bằng keys = pygame.key.get_pressed().
  2. Khi bạn giữ phím Left, trừ 4 khỏi moon_x.
  3. Khi bạn giữ phím Right, cộng 4 vào moon_x.

Nhấn Chơi và giữ các phím mũi tên: mặt trăng trượt sang trái và sang phải. Sau đó nhấn Kiểm tra.

Tự làm thử

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Thiết lập mọi thứ ở đây, trước vòng lặp trò chơi.
moon_x = 320
moon_y = 240

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

    # Thay đổi mọi thứ ở đây, mỗi khung hình một lần.

    screen.fill((20, 24, 48))
    # Vẽ ở đây, sau khi tô nền.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tất cả bài học trong Python trong cửa sổ trò chơi

Tự luyện tập: Playground Pygame