Rect ile Yerleştir
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 2 / 36.
Sol üst köşeyi elle hesaplamak, yerleştirdiğin her görüntü için toplama işlemleri yapmak demektir. Her Surface, kendi boyutlarında bir Rect verebilir:
ship_rect = ship.get_rect(center=(320, 400))get_rect() tek başına Rect(0, 0, 64, 64) değerini verir. Bir anahtar sözcük, Rect'in hangi noktasının kullanılacağını belirler: center, midbottom, topleft veya Rect'in sahip olduğu başka herhangi bir nokta. Burada geminin merkezi (320, 400) konumuna yerleşir ve pygame köşeyi (288, 368) olarak hesaplar.
Görüntüyü Rect konumuna blit et; böylece görüntü Rect'in sol üst köşesine yerleşir:
screen.blit(ship, ship_rect)Artık Rect, geminin konumudur. ship_rect.x veya ship_rect.centery değerini değiştir; sonraki kare gemiyi o konumda çizer. Oyundaki her görüntü bu şekilde hareket eder: bir Rect tut, Rect'i değiştir, Rect konumuna blit et. Ayrıca 2. bölümde olduğu gibi çarpışmaları kontrol ettiğin Rect de budur.
Görev
Kolayship'i yükledikten sonraship_rect = ship.get_rect(center=(320, 400))oluştur.ship'i sabit bir nokta yerineship_rectkonumuna blit et.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
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, 208))
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