Chạy nước rút
Thuộc phần Vòng lặp trò chơi trong hành trình Pygame của Coddy. Bài học 6 trên 35.
Biến có thể thay đổi theo từng khung hình, tùy vào hành động của người chơi. Ở đây, tốc độ phụ thuộc vào việc bạn có giữ phím Space hay không.
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8Mỗi khung hình bắt đầu với tốc độ bình thường là 4. Chỉ khung hình nào có phím Space đang được nhấn mới tăng tốc độ lên 8. Thả phím Space ra thì khung hình tiếp theo lại trở về 4.
Đặt giá trị bình thường trước, rồi mới đặt giá trị đặc biệt. Nếu làm theo thứ tự ngược lại, dòng thứ hai luôn có hiệu lực và phím Space không làm gì cả.
Thử thách
DễCho nhân vật chạy nhanh khi bạn giữ Space.
- Xóa
speed = 4ở phía trên vòng lặp. - Trong vòng lặp, ngay sau
keys = pygame.key.get_pressed(), đặtspeed = 4, rồi đặt giá trị thành8nếu bạn giữ Space.
Nhấn Chơi và giữ Space cùng với một phím mũi tên: hình vuông di chuyển nhanh gấp đôi. 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()
x, y = 220, 160
speed = 4
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 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