Bir Görseli Ölçekle
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 8 / 36.
Bir seviyenin bölüm sonu canavarı büyük görünmeli, bir can sayacı içinse küçük gemiler gerekir. Aynı dosyalar ikisini de yapabilir: ölçeklendirme, yeniden boyutlandırılmış bir kopya oluşturur.
boss = pygame.transform.scale_by(boss, 2)
icon = pygame.transform.scale(ship, (32, 32))scale_by(image, 2), her iki kenarı da 2 ile çarpar: 64'e 64 boyutundaki bölüm sonu canavarı 128'e 128 boyutuna dönüşür. scale(image, (w, h)), görüntüyü uzatsa bile onu tam olarak w'ye h piksel boyutuna getirir.
Ölçeklendirme, blit işlemine kıyasla yavaştır ve her yeni kopya pikselleri biraz daha bulanıklaştırır veya bloklu hâle getirir. Orijinal dosyadan, döngüden önce bir kez ölçeklendirme yap ve her karede ölçeklendirilmiş kopyayı çiz.
Ölçeklendirmeden sonra Rect oluştur. 64'e 64 boyutundaki resimden oluşturulan bir Rect eski boyutta kalır ve center=(320, 150) büyük bölüm sonu canavarını merkezden kaydırır.
Görev
Kolay- Döngüden önce boss’u 2 kat ölçeklendir, ardından ölçeklendirilmiş görüntüyü
boss_rectnesnesine dönüştür ve merkezini(320, 150)konumuna ayarla. - Gemi
(32, 32)boyutuna ölçeklendirilerekiconoluştur. iconöğesini sol üst köşeleri(10, 10),(50, 10)ve(90, 10)konumlarında olacak şekilde üç kez çiz.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Boss Fight")
clock = pygame.time.Clock()
boss = pygame.image.load("assets/images/boss.png").convert_alpha()
boss_rect = boss.get_rect(center=(320, 150))
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(boss, boss_rect)
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