Menu
CoddyTech

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 = 8

Mỗ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ả.

challenge icon

Thử thách

Dễ

Cho nhân vật chạy nhanh khi bạn giữ Space.

  1. Xóa speed = 4 ở phía trên vòng lặp.
  2. Trong vòng lặp, ngay sau keys = pygame.key.get_pressed(), đặt speed = 4, rồi đặt giá trị thành 8 nế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

Tự luyện tập: Playground Pygame