Arka Planı Döşe
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 4 / 36.
Düz bir renk, gökyüzünü sıkıcı gösterir. assets/backgrounds/sky.png, tekrar edecek şekilde hazırlanmış 72'ye 72 piksellik bir resimdir: kopyaları yan yana koyun, kenarlar iz bırakmadan birleşir. Pencereyi küçük bir resmin kopyalarıyla kaplamaya döşeme denir.
İç içe iki döngü, ızgaranın her satırını sırayla işleyerek tüm sol üst köşeleri verir:
for x in range(0, 640, 72):
for y in range(0, 480, 72):
screen.blit(tile, (x, y))range(0, 640, 72), 0, 72, 144 ve 576'ya kadar bu şekilde devam eder. 576'daki kopya 648'e kadar uzanır; bu da pencerenin kenarını aşar: pygame pencerenin içindeki kısmı çizer ve geri kalanını atlar, böylece son sütun düzgünce kesilir.
Karolar pencerenin tamamını kaplar, bu yüzden screen.fill öğesinin yerini alırlar: önce onları, ardından diğer her şeyi üstlerine çizin. Bu resimde saydam pikseller yoktur; bu yüzden onu, düz görüntüler için convert_alpha() sürümü olan .convert() ile yükleyin.
Görev
Kolayset_mode'dan sonra,assets/backgrounds/sky.pngdosyasını.convert()ile yükleyiptileadlı bir değişkene ata.screen.fill(...)ifadesini,tile'ı her(x, y)konumuna çizmek için kullanılan iki döngüyle değiştir; x içinrange(0, 640, 72), y içinrange(0, 480, 72).- Gemiyi döşemelerden sonra çizmeye devam et.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Sky Tiles")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
screen.blit(ship, (288, 360))
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