Menu
CoddyTech

Hitung Bintang

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

Pemain perlu mengetahui seberapa dekat langit dengan kondisi penuh. Tampilkan jumlah dari dua puluh di pojok kiri atas:

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

f-string menggabungkan sebuah nilai, len(stars), dengan teks biasa, /20. Dengan tujuh bintang, hasilnya adalah Stars: 7/20.

Buat font di bagian penyiapan, di samping stars = []. Membuat font akan memuatnya, dan itu membutuhkan waktu, jadi lakukan sekali saja. Merender teks tidak membutuhkan banyak biaya dan terjadi di setiap frame, sehingga hitungannya selalu diperbarui.

Gambar label terakhir di bagian penggambaran, agar tidak ada bintang yang menutupinya.

challenge icon

Tantangan

Mudah

Tampilkan jumlahnya:

  1. Di bagian penyiapan, buat font = pygame.font.Font(None, 36).
  2. Di akhir bagian menggambar, render f"Stars: {len(stars)}/20" dengan (230, 230, 240) dan blit di (20, 20).

Coba sendiri

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

    screen.fill((20, 24, 48))
    # Gambar di sini, setelah screen.fill().
    pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
    for star in stars:
        colour = (255, 255, 255)
        if random.randint(1, 30) == 1:
            colour = (110, 120, 170)
        pygame.draw.circle(screen, colour, star, 3)

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

pygame.quit()

Semua pelajaran di Python di Jendela Game

Latihan sendiri: Playground Pygame