Menghitung dengan while
Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 19 dari 32.
Perulangan while berulang selama kondisinya bernilai benar. Gunakan perulangan ini saat kamu belum tahu berapa kali perulangan akan berlangsung:
radius = 200
rings = 0
while radius > 10:
pygame.draw.circle(screen, (150, 190, 255), (320, 240), radius, 2)
radius = radius // 2
rings = rings + 1Radius dibagi dua setiap kali: 200, 100, 50, 25, 12. // membagi dan membuang angka setelah titik, jadi 25 // 2 adalah 12. Lalu nilainya menjadi 6, kondisinya bernilai salah, dan perulangan berakhir setelah 5 cincin. rings menghitung jumlahnya. Angka kelima dalam pemanggilan lingkaran, 2, menggambar garis tepi selebar 2 piksel, bukan lingkaran berisi.
Perulangan game juga merupakan while loop, yang berjalan sampai kamu menutup jendela. While loop di dalam sebuah frame harus segera berakhir, atau frame tersebut tidak akan pernah berakhir. Jika baris yang membagi dua radius dihilangkan, kondisi akan selalu benar: game membeku, dan tombol Periksa menyatakan bahwa game tidak pernah mencapai frame pertamanya.
Tantangan
SedangDi bagian menggambar, ganti satu cincin dengan perulangan while:
- Mulai dengan
radius = 200danrings = 0. - Selama
radius > 10: gambar cincin garis luar berwarna(150, 190, 255), dengan lebar 2, berpusat di (320, 240); bagi dua radius dengan//; tambahkan 1 kerings. - Setelah perulangan, tampilkan
f"Rings: {rings}"di (20, 20). Teksnya adalahRings: 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.
font = pygame.font.Font(None, 36)
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, (150, 190, 255), (320, 240), 200, 2)
text = font.render("Rings: 1", 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
4Perulangan untuk Menggambar
Mengulang dengan forMulai, Berhenti, dan LangkahGunakan Variabel PerulanganPerulangan di Dalam PerulanganMenghitung dengan whileLatihan sendiri: Playground Pygame