Menu
CoddyTech

class pertamamu

Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 10 dari 36.

Bintang terdiri dari tiga variabel: star_x, star_y, dan star_speed. Cara ini cukup untuk satu bintang, tetapi langit yang penuh bintang membutuhkan cara yang lebih baik untuk menyimpan angka setiap bintang secara bersamaan.

class adalah rancangan untuk suatu jenis object. Setiap object yang dibuat darinya membawa nilainya sendiri, yang disebut atribut:

class Star:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.speed = 2


star = Star(320, 0)

Star(320, 0) membuat object Star baru. Python kemudian menjalankan __init__ pada object itu, yaitu fungsi di dalam class yang menyiapkan setiap object baru. Nama ini, dengan dua garis bawah di setiap sisinya, adalah nama yang dicari Python. Fungsi tersebut dijalankan dengan x = 320 dan y = 0. Di dalamnya, self adalah object baru tersebut, jadi self.x = x menyimpan 320 di dalamnya. Di luar class, kamu mengakses nilai yang sama dengan star.x, dan mengubahnya dengan cara yang sama: star.y += star.speed.

Nama class diawali dengan huruf kapital: Star adalah rancangannya, sedangkan star adalah satu bintang yang dibuat dari rancangan itu.

challenge icon

Tantangan

Mudah
  1. Tulis class Star yang menyimpan self.x, self.y, dan self.speed = 2 di dalam __init__(self, x, y).
  2. Ganti ketiga variabel dengan star = Star(320, 0).
  3. Dalam perulangan, gunakan star.y, star.speed, dan star.x sebagai pengganti variabel yang lama.

Coba sendiri

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Star")
clock = pygame.time.Clock()

star_x = 320
star_y = 0
star_speed = 2

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    star_y += star_speed
    if star_y > 480:
        star_y = 0

    screen.fill((20, 22, 40))
    pygame.draw.circle(screen, (255, 255, 255), (star_x, star_y), 4)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Semua pelajaran di Sprite dan Gambar

Latihan sendiri: Playground Pygame