Menu
CoddyTech

Vòng qua mép

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 11 trên 33.

Một câu lệnh if chỉ chạy các dòng bên trong khi điều kiện đúng:

if comet_x > 640:
    comet_x = 0

Điều kiện kết thúc bằng dấu hai chấm. Các dòng bên dưới được thụt lề 4 dấu cách: chúng thuộc về câu lệnh if. Python kiểm tra điều kiện ở mỗi khung hình. Khi sao chổi còn trong cửa sổ, điều kiện sai và không có gì xảy ra. Khi sao chổi vượt qua mép phải, điều kiện đúng và sao chổi quay về bên trái.

Phép so sánh cho kết quả True hoặc False. > nghĩa là lớn hơn, < nghĩa là nhỏ hơn, còn == kiểm tra xem hai giá trị có bằng nhau không. Một dấu = dùng để lưu giá trị; hai dấu dùng để so sánh.

Hãy kiểm tra một khoảng như > 640, thay vì một giá trị chính xác. Sao chổi bắt đầu ở vị trí 50 và di chuyển 3 pixel mỗi khung hình: 635, 638, 641. Nó không bao giờ dừng đúng ở 640, nên comet_x == 640 sẽ không bao giờ đúng.

challenge icon

Thử thách

Dễ

Đưa sao chổi trở lại mép trái khi nó đi ra khỏi cửa sổ.

  1. Sau dòng di chuyển sao chổi, thêm một câu lệnh if.
  2. Khi comet_x lớn hơn 640, đặt comet_x thành 0.

Nhấn “Chơi”: sao chổi băng qua cửa sổ hết lần này đến lần khác. 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 trò chơi.
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200

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

    # Thay đổi các giá trị ở đây sau mỗi khung hình.
    comet_x = comet_x + 3

    screen.fill((20, 24, 48))
    # Vẽ ở đây, sau khi tô nền.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)

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

pygame.quit()

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

Tự luyện tập: Playground Pygame