İ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.
Görev
Kolayself.x,self.yveself.speed = 2değerlerini saklayan birStarsınıfı yaz;__init__(self, x, y)yöntemini kullan.- Üç değişkeni
star = Star(320, 0)ile değiştir. - Döngüde, eski değişkenlerin kullanıldığı yerlerde
star.y,star.speedvestar.xkullan.
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
4Sprite'lar ve Gruplar
Sprite SınıfıGruplarkill() ile Kaldırmaspritecollide ile YakalamaGruba Karşı Grup2Döndür, Yansıt, Ölçekle
Merkez Etrafında DöndürUçtuğun Yöne DönBir Görseli ÖlçekleOrijinalinden Döndür5Piksel Hassasiyetinde Çarpışmalar
Dikdörtgenler Haksız HissettiriyorMaskelerPiksel Hassasiyetinde Sprite'larDaire Hitbox'ları3Oyun Nesneleri için Sınıflar
İlk SınıfınızMetotlarSelf Nesnenin KendisidirNesneler ListesiGörselli NesnelerBir Alt Sınıf6Sprite Sheet'lerden Animasyon
Bir Sprite Sheet'i KesmekBir Kare SayacıZamanla AnimasyonTek Seferlik Bir PatlamaKendi başına pratik yap: Pygame playground