Phím mũi tên
Thuộc phần Vòng lặp trò chơi trong hành trình Pygame của Coddy. Bài học 5 trên 35.
Để di chuyển hình vuông, hãy lưu vị trí của nó trong các biến và vẽ nó ở 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 giữ. Truy cập phần tử bằng hằng số phím 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. Hướng lên nghĩa là 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 (loop), tạo
x, y = 220, 160vàspeed = 4. - Trong vòng lặp, sau các sự kiện, đọc
pygame.key.get_pressed(). Mỗi phím mũi tên được giữ sẽ thay đổixhoặcytheospeed. - 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 Vòng lặp trò chơi
1Di chuyển hình vuông
Mở cửa sổTô nền4Di chuyển theo thời gian
Thời gian deltaPixel mỗi giâyVector2Gia tốc và ma sátDi chuyển vòng quanh màn hìnhTự luyện tập: Playground Pygame