Menu
CoddyTech

True hay false

Thuộc phần Python trong cửa sổ trò chơi trong hành trình Pygame của Coddy. Bài học 15 trên 33.

True và False là các giá trị riêng, gọi là giá trị boolean. Một biến có thể lưu một giá trị như vậy, giống như công tắc:

lamp_on = False

Câu lệnh if có thể kiểm tra trực tiếp: if lamp_on: sẽ chạy khi biến này có giá trị True. not đảo ngược giá trị, vì vậy lamp_on = not lamp_on sẽ bật hoặc tắt đèn.

Công tắc cần một lần nhấn phím, không phải giữ phím. get_pressed() trả về True ở mọi khung hình khi phím đang được nhấn, nên nó sẽ bật tắt đèn 60 lần mỗi giây. Một lần nhấn được ghi nhận một lần dưới dạng sự kiện KEYDOWN, trong vòng lặp sự kiện ở đầu vòng lặp trò chơi:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
        lamp_on = not lamp_on

Phần 2 giải thích đầy đủ về sự kiện. Trước mắt, event.type cho biết điều gì đã xảy ra, còn event.key cho biết phím nào.

challenge icon

Thử thách

Trung bình

Nhấn Space để bật và tắt đèn.

  1. Trong phần thiết lập, đặt lamp_on = False.
  2. Trong vòng lặp sự kiện, khi có sự kiện KEYDOWN với K_SPACE, đặt lamp_on = not lamp_on.
  3. Vẽ ánh sáng tại (320, 290), bán kính 30: (255, 220, 100) khi lamp_on là True, nếu không thì dùng (70, 70, 90).

Nhấn Chơi rồi nhấn phím Space: đèn sẽ bật và tắt. Sau đó nhấn Kiểm tra.

Tự làm thử

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Thiết lập mọi thứ ở đây, trước vòng lặp (loop) trò chơi.

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Thay đổi mọi thứ ở đây, mỗi khung hình một lần.

    screen.fill((20, 24, 48))
    # Vẽ ở đây, sau khi tô nền.
    pygame.draw.rect(screen, (90, 90, 110), (310, 300, 20, 180))
    pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Python trong cửa sổ trò chơi

Tự luyện tập: Playground Pygame