Menu
CoddyTech

Raih Poin dari Permata

Termasuk bagian Perulangan Game dalam perjalanan Pygame di Coddy. Pelajaran 15 dari 35.

Game membutuhkan skor. Simpan skor dalam variabel yang dibuat sebelum perulangan, score = 0, lalu tambahkan 1 dengan score += 1 setiap kali pemain menangkap permata.

Game ini menampilkan skor sebagai baris kotak-kotak kecil, satu untuk setiap poin. Perulangan for menggambar baris berisi apa pun: di sini, tiga lingkaran yang berjarak 30 piksel.

for i in range(3):
    pygame.draw.circle(screen, (255, 200, 0), (20 + 30 * i, 20), 10)

Pada iterasi pertama, i bernilai 0, lalu 1, lalu 2, sehingga setiap lingkaran berada 30 piksel lebih ke kanan. Dengan range(score), baris bertambah satu setiap kali skor bertambah.

challenge icon

Tantangan

Mudah

Hitung permata dan tampilkan jumlahnya di bagian atas.

  1. Tambahkan score = 0 sebelum perulangan, lalu tambahkan 1 ke nilainya saat klik mengenai permata.
  2. Setelah menggambar permata, untuk setiap i dalam range(score), gambar rect berwarna merah muda (240, 110, 180) di (10 + 10 * i, 14, 8, 8).

Tekan tombol “Main” dan tangkap tiga permata: tiga tanda merah muda berbaris di kiri atas. Lalu tekan tombol “Periksa”.

Coba sendiri

import random
import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Gem Hunt")
clock = pygame.time.Clock()

gx, gy = 225, 165

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos
            if gx <= x <= gx + 30 and gy <= y <= gy + 30:
                gx = random.randint(15, 435)
                gy = random.randint(55, 315)

    screen.fill((30, 30, 46))
    gem_points = [(gx + 15, gy), (gx + 30, gy + 15), (gx + 15, gy + 30), (gx, gy + 15)]
    pygame.draw.polygon(screen, (80, 220, 255), gem_points)
    mouse_x, mouse_y = pygame.mouse.get_pos()
    pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Semua pelajaran di Perulangan Game

Latihan sendiri: Playground Pygame