Menu
CoddyTech

Hitung dengan len

Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 26 dari 32.

len(stars) adalah jumlah item yang ada di list. Panjang list kosong adalah 0. Gunakan ini untuk menampilkan jumlah:

text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))

f-string dapat memuat ekspresi apa pun di dalam kurung kurawal, termasuk pemanggilan fungsi.

len juga dapat menetapkan batas. Tambahkan bintang hanya jika masih ada ruang:

if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
    stars.append(event.pos)

Setelah list berisi 10 bintang, kondisi bernilai false, jadi klik tidak melakukan apa pun. Jumlah di layar dan batas menggunakan list yang sama, jadi keduanya selalu sesuai.

Batas berada di dalam perulangan event, digabungkan dengan pengujian klik menggunakan and: append hanya dijalankan ketika event adalah klik dan masih ada ruang. len juga dapat digunakan pada string: len("Night") adalah 5.

challenge icon

Tantangan

Sedang

Hitung bintang dan berhenti saat mencapai sepuluh:

  1. Di bagian penyiapan, buat font = pygame.font.Font(None, 36).
  2. Di bagian menggambar, tampilkan f"Stars: {len(stars)}" dengan warna (230, 230, 240) pada posisi (20, 20).
  3. Tambahkan bintang saat diklik hanya jika len(stars) < 10.

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 di sini, sekali setiap frame.

    screen.fill((20, 24, 48))
    # Gambar di sini, setelah pengisian warna.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Semua pelajaran di Python di Jendela Game

Latihan sendiri: Playground Pygame