Lấp lánh
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 31 trên 33.
Các ngôi sao thật sự nhấp nháy. Ở đây, thỉnh thoảng mỗi ngôi sao mờ đi trong một khung hình, một cách ngẫu nhiên. Trong mỗi khung hình, mỗi ngôi sao chọn một số từ 1 đến 30, và nếu số đó là 1 thì ngôi sao được vẽ mờ:
for star in stars:
colour = (255, 255, 255)
if random.randint(1, 30) == 1:
colour = (110, 120, 170)
pygame.draw.circle(screen, colour, star, 3)colour bắt đầu bằng màu trắng cho mỗi ngôi sao, và if chỉ thay đổi màu khi số được chọn là 1. Với mỗi ngôi sao, cứ 30 khung hình thì có một khung hình mờ đi, tức khoảng hai lần mỗi giây. Mỗi ngôi sao tự chọn số riêng, nên chúng nhấp nháy vào những thời điểm khác nhau. Sự thay đổi nhỏ và không đều đó khiến bầu trời trông sống động.
Thêm import random vào đầu chương trình. Ở đây, việc chọn số ngẫu nhiên cần diễn ra trong vòng lặp vẽ vì phải chọn lại ở mỗi khung hình, cho từng ngôi sao.
Thử thách
Trung bìnhLàm cho các ngôi sao lấp lánh.
- Thêm
import randomvào đầu. - Trong vòng lặp sao, đặt
colourcủa mỗi ngôi sao thành màu trắng(255, 255, 255), và khirandom.randint(1, 30) == 1, đặt thành màu tối(110, 120, 170). - Vẽ ngôi sao bằng
colour.
Nhấn “Chơi” rồi đặt vài ngôi sao: thỉnh thoảng chúng sẽ nhấp nháy. 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.
stars = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
# Thay đổi mọi thứ ở đây sau mỗi khung hình.
screen.fill((20, 24, 48))
# Vẽ ở đây, sau khi tô màu nền.
pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 3)
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