Angka Acak
Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 28 dari 32.
Module random Python memilih angka secara acak. Impor module ini di bagian atas program, sebelum atau sesudah import pygame:
import randomrandom.randint(a, b) memberikan bilangan bulat dari a hingga b, termasuk kedua batasnya. random.choice(items) memilih satu item dari sebuah list:
x = random.randint(20, 620)
size = random.choice([3, 4, 5])Setiap pemanggilan memilih lagi, jadi panggil fungsi itu saat kamu membutuhkan nilai baru. Bintang yang ditempatkan dengan tombol Spasi:
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
x = random.randint(20, 620)
y = random.randint(60, 300)
stars.append((x, y))Perhatikan tanda kurung ganda di stars.append((x, y)): append menerima satu item, dan item itu adalah tuple (x, y). Jika kamu memilih x dan y sekali saja sebelum perulangan game, setiap bintang akan berada di tempat yang sama.
Tantangan
SedangTekan Space untuk menyebarkan bintang:
- Tambahkan
import randomdi bagian atas. - Saat event
KEYDOWNuntukK_SPACEterjadi, pilihx = random.randint(20, 620)dany = random.randint(60, 300), lalu tambahkan(x, y)kestars. - Klik tetap menambahkan bintang seperti sebelumnya.
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 = []
font = pygame.font.Font(None, 36)
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 hal-hal di sini, sekali setiap frame.
screen.fill((20, 24, 48))
# Gambar di sini, setelah mengisi layar.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
screen.blit(text, (20, 20))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Python di Jendela Game
Latihan sendiri: Playground Pygame