Berkilau
Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 30 dari 32.
Bintang sungguhan berkelap-kelip. Di sini, setiap bintang meredup selama satu frame sesekali, secara acak. Pada setiap frame, setiap bintang mengacak angka dari 1 sampai 30, dan jika hasilnya 1, bintang itu digambar redup:
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 dimulai dengan warna putih untuk setiap bintang, dan if mengubahnya hanya jika hasilnya 1. Satu frame dari 30 kira-kira terjadi dua kali per detik untuk setiap bintang, dan setiap bintang mengacak angkanya sendiri, jadi bintang-bintang berkelap-kelip pada waktu yang berbeda. Perubahan kecil dan tidak beraturan itulah yang membuat langit tampak hidup.
Tambahkan import random di bagian atas program. Pengacakan angka dilakukan di perulangan penggambaran karena pilihan harus dibuat lagi pada setiap frame, untuk setiap bintang.
Tantangan
SedangBuat bintang-bintang berkelap-kelip:
- Tambahkan
import randomdi bagian atas. - Dalam perulangan bintang, mulai setiap bintang dengan
colourputih(255, 255, 255). - Saat
random.randint(1, 30) == 1, buat warnanya redup(110, 120, 170). - Gambar bintang menggunakan
colour.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Siapkan semuanya di sini, sebelum perulangan game.
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)
# Ubah semuanya di sini, sekali setiap frame.
screen.fill((20, 24, 48))
# Gambar di sini, setelah layar diisi.
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()
Semua pelajaran di Python di Jendela Game
Latihan sendiri: Playground Pygame