Menu
CoddyTech

Chạy nước rút

Bài học 6 trên 41 trong khóa học Tạo trò chơi với Pygame của Coddy.

Giá trị của một biến có thể thay đổi ở mỗi khung hình, tùy thuộc vào thao tác của người chơi. Ở đây, tốc độ phụ thuộc vào việc bạn có nhấn 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ó nhấn phím Space mới tăng tốc độ lên 8. Thả phím Space ra thì khung hình tiếp theo trở về tốc độ 4.

Đặt giá trị bình thường trước, rồi đến giá trị đặc biệt. Nếu viết theo thứ tự ngược lại, dòng thứ hai luôn có hiệu lực và phím Space sẽ không làm gì cả.

challenge icon

Thử thách

Dễ

Cho nhân vật chạy nhanh khi bạn giữ phím 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 thành 8 nếu bạn giữ phím Space.

Nhấn Chơi và giữ phím 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 Tạo trò chơi với Pygame

Tự luyện tập: Playground Pygame