Nesneler Listesi
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 13 / 36.
Adlandırılmış iki yıldız bir gökyüzü oluşturmaz. Kırk yıldız için bir liste gerekir: nesneleri bir döngüde oluştur ve her birini listeye ekle.
stars = []
for i in range(40):
x = random.randint(0, 639)
y = random.randint(0, 479)
speed = random.randint(1, 3)
stars.append(Star(x, y, speed))Ardından bir döngü hepsini günceller, başka bir döngü de hepsini çizer:
for star in stars:
star.update()for döngüsünün içinde star, sırası gelen her bir nesnedir; bu nedenle star.update(), o yıldızı kendi hızıyla hareket ettirir. Yüz yıldız daha eklemek yalnızca bir sayıyı değiştirmeyi gerektirir; güncelleme ve çizim kodu aynı kalır.
Listeyi oyun döngüsünden önce, bir kez oluştur. Döngünün içinde oluşturulan bir liste, her karede yeni yıldızlardan oluşan yeni bir listedir; yıldızların hepsi başlangıç konumlarına döner ve hiçbir şey hareket etmez.
Görev
Orta- En üste
import randomekle. - Döngüden önce, her biri 0 ile 639 arasında rastgele bir x değerine, 0 ile 479 arasında rastgele bir y değerine ve 1 ile 3 arasında rastgele bir hıza sahip 40 Star nesnesinden oluşan bir
starslistesi oluştur. - Döngüde,
starsiçindeki her yıldızı güncelle ve dolgu işleminden sonra her yıldızı çiz.slowvefastöğelerini kaldır.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Stars")
clock = pygame.time.Clock()
class Star:
def __init__(self, x, y, speed):
self.x = x
self.y = y
self.speed = speed
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)
slow = Star(200, 0, 1)
fast = Star(440, 0, 3)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
slow.update()
fast.update()
screen.fill((20, 22, 40))
slow.draw(screen)
fast.draw(screen)
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