List Bintang
Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 24 dari 32.
Sebuah list menyimpan banyak nilai dalam satu variabel, secara berurutan, di dalam tanda kurung siku:
stars = [(100, 80), (220, 160), (360, 100)]Di sini, setiap item adalah tuple posisi. stars[0] adalah item pertama, yaitu (100, 80), dan stars[1] adalah item kedua. Penghitungan dimulai dari 0, seperti pada range.
for loop dapat menelusuri list. Variabel loop mengambil setiap item secara bergiliran:
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)Posisi adalah tuple, jadi star langsung digunakan di tempat yang diisi oleh pusat lingkaran. Tambahkan posisi ke list, maka satu bintang lagi akan muncul tanpa perlu mengubah loop. List adalah ingatan game tentang apa yang ada di layar. Loop menggambar apa pun yang tersimpan di dalamnya.
Tantangan
MudahGambar langit dengan lima bintang dari sebuah list:
- Tambahkan
(360, 100),(480, 200)dan(580, 70)ke akhirstars. - Ganti baris yang menggambar
stars[0]denganfor star in stars:, lalu gambar setiap bintang sebagai lingkaran putih(255, 255, 255)dengan radius 5.
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 = [(100, 80), (220, 160)]
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Ubah yang perlu di sini, sekali setiap frame.
screen.fill((20, 24, 48))
# Gambar di sini, setelah mengisi layar.
pygame.draw.circle(screen, (255, 255, 255), stars[0], 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Semua pelajaran di Python di Jendela Game
Latihan sendiri: Playground Pygame