Phím mũi tên
Bài học 5 trên 41 trong khóa học Tạo trò chơi với Pygame của Coddy.
Để di chuyển hình vuông, hãy lưu vị trí của nó trong các biến và vẽ hình vuông ở vị trí đó trong mỗi khung hình. Thay đổi các biến, khung hình tiếp theo sẽ hiển thị hình vuông ở một vị trí khác.
pygame.key.get_pressed() cho bạn biết những phím nào đang được nhấn. Dùng hằng số của phím để truy cập, chẳng hạn như pygame.K_RIGHT: kết quả là True khi phím đó đang được nhấn.
x = 100
while running:
# sự kiện
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
x += 4
# tô nền, rồi vẽ tại xGiữ phím mũi tên phải, hình vuông sẽ di chuyển 4 pixel trong mỗi khung hình, tức 240 pixel mỗi giây ở tốc độ 60 khung hình mỗi giây. Các phím mũi tên là K_LEFT, K_RIGHT, K_UP và K_DOWN. Phím mũi tên lên làm y nhỏ hơn.
Tạo các biến trước vòng lặp. Biến được đặt bên trong vòng lặp sẽ bắt đầu lại ở mỗi khung hình. x, y = 100, 50 đặt hai tên trên một dòng: x nhận giá trị 100 và y nhận giá trị 50.
Thử thách
DễDi chuyển hình vuông bằng các phím mũi tên.
- Trước vòng lặp, tạo
x, y = 220, 160vàspeed = 4. - Trong vòng lặp, sau khi xử lý các sự kiện, đọc
pygame.key.get_pressed(). Mỗi phím mũi tên được giữ sẽ thay đổixhoặcymột lượng bằngspeed. - Vẽ hình vuông tại
(x, y, 40, 40).
Nhấn Chơi và giữ các phím mũi tên: hình vuông sẽ di chuyển. 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("Move the Square")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (220, 160, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tất cả bài học trong Tạo trò chơi với Pygame
1Vòng lặp trò chơi
Mở cửa sổTô màu nềnTự luyện tập: Playground Pygame