Menu
CoddyTech

İlk Sınıfınız

Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 10 / 36.

Yıldız üç değişkenden oluşur: star_x, star_y ve star_speed. Tek bir yıldız için sorun yok; yıldızlarla dolu bir gökyüzünde her yıldızın değerlerini bir arada tutmanın daha iyi bir yolu gerekir.

Sınıf, bir nesne türü için bir plandır. Bu sınıftan oluşturulan her nesne, öznitelik adı verilen kendi değerlerini taşır:

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


star = Star(320, 0)

Star(320, 0) yeni bir Star nesnesi oluşturur. Python ardından, her yeni nesneyi hazırlayan sınıfın içindeki işlev olan __init__'i bu nesne üzerinde x = 320 ve y = 0 değerleriyle çalıştırır (iki yanında ikişer alt çizgi bulunan bu ad, Python'ın aradığı adlardan biridir). Bu işlevin içinde self yeni nesnedir; bu nedenle self.x = x, 320 değerini nesnede saklar. Sınıfın dışından aynı değere star.x olarak ulaşırsın ve onu aynı şekilde değiştirirsin: star.y += star.speed.

Sınıf adları büyük harfle başlar: Star plandır, star ise bu plandan oluşturulmuş bir yıldızdır.

challenge icon

Görev

Kolay
  1. self.x, self.y ve self.speed = 2 değerlerini saklayan bir Star sınıfı yaz; __init__(self, x, y) yöntemini kullan.
  2. Üç değişkeni star = Star(320, 0) ile değiştir.
  3. Döngüde, eski değişkenlerin kullanıldığı yerlerde star.y, star.speed ve star.x kullan.

Kendin dene

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()

Sprite'lar ve Görseller bölümündeki tüm dersler

Kendi başına pratik yap: Pygame playground