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 + 4keys[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.
Thử thách
DễDi chuyển mặt trăng bằng các phím mũi tên.
- Trong phần thay đổi, đọc các phím bằng
keys = pygame.key.get_pressed(). - Khi bạn giữ phím Left, trừ 4 khỏi
moon_x. - 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
1Cửa sổ đầu tiên
Chương trình đầu tiên của bạnIn ra một thông điệpIn ra một sốMàu sắc dưới dạng sốVẽ mặt trăngTự luyện tập: Playground Pygame