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.
Thử thách
DễĐưa sao chổi trở lại mép trái khi nó đi ra khỏi cửa sổ.
- Sau dòng di chuyển sao chổi, thêm một câu lệnh
if. - Khi
comet_xlớn hơn640, đặtcomet_xthành0.
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
1Cửa sổ đầu tiên
Chương trình đầu tiên của bạnIn ra một thông điệpIn ra một sốMàu sắc dưới dạng sốVẽ mặt trăngTự luyện tập: Playground Pygame