Metotlar
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 11 / 36.
Yıldızın sayıları artık sınıfta, ancak onlarla ilgili kurallar, nasıl düştüğü ve nasıl çizildiği hâlâ döngünün içinde. Bir sınıfın içinde yazılan işlevler metot olarak adlandırılır ve kuralları verilerin yanına koyar:
class Star:
# __init__ önceki gibi
def update(self):
self.y += self.speed
if self.y > 480:
self.y = 0
def draw(self, screen):
pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), 4)Her metodun ilk parametresi, üzerinde çalıştığı nesne olan self'tir. Bir nesne üzerinde metodu nokta kullanarak çağırırsın ve pygame'in Surface nesnesi de diğer tüm bağımsız değişkenler gibi aktarılır:
star.update()
star.draw(screen)Ana döngü artık bir karede olanları anlatır: yıldızı güncelle, ardından çiz. pygame programlarındaki oyun nesnelerinde neredeyse her zaman şu iki metot bulunur: update ve draw.
Görev
OrtaStarsınıfınaupdate(self)metodunu ekle:self.speeddeğeriniself.ydeğerine ekler veself.y480'i geçtiğinde yıldızı tekrary = 0konumuna getirir.draw(self, screen)metodunu ekle:(self.x, self.y)konumunda yarıçapı 4 olan beyaz daireyi çizer.- Döngüde
star.update()çağrısını yap ve doldurma işleminden sonrastar.draw(screen)çağrısını yap.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Star")
clock = pygame.time.Clock()
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
star = Star(320, 0)
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()
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
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