Tempatkan Bintang
Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 29 dari 32.
Empat pelajaran terakhir membangun satu game kecil, Night Sky: kamu mengeklik untuk menempatkan bintang, bintang-bintang itu berkelap-kelip, penghitung menunjukkan jumlahnya, dan saat jumlahnya mencapai dua puluh, langit sudah penuh. Setiap pelajaran dimulai dari kodemu pada pelajaran sebelumnya.
Game ini menggunakan hal-hal yang diajarkan di bagian ini. Bintang-bintang berupa list posisi yang dibuat kosong sebelum perulangan game. Saat kamu mengeklik, posisi klik ditambahkan ke list, lalu for loop menggambar setiap bintang dalam list pada setiap frame:
stars = []
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 3)Gambarlah bintang-bintang setelah bulan dan tanah agar terlihat di atasnya. Bintang yang ditempatkan di bulan akan terlihat di depannya, seolah-olah bintang itu lebih dekat.
Tantangan
MudahMulai Night Sky:
- Buat
stars = []sebelum game loop. - Saat terjadi event
MOUSEBUTTONDOWN, tambahkanevent.poskestars. - Setelah menggambar bulan dan tanah, gambar setiap bintang sebagai lingkaran putih
(255, 255, 255)dengan radius 3.
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.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Ubah yang perlu di sini setiap frame.
screen.fill((20, 24, 48))
# Gambar di sini setelah fill.
pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Semua pelajaran di Python di Jendela Game
Latihan sendiri: Playground Pygame