Merkez Etrafında Döndür
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 6 / 36.
Dönen bir gemi için döndürülmüş bir görsel gerekir. pygame.transform.rotate(image, angle) size yeni bir Surface verir: görselin angle derece saat yönünün tersine döndürülmüş hâli. Negatif bir açı, görseli saat yönünde döndürür. Orijinal görsel değişmez.
Döndürülmüş bir kare, aynı boyuttaki bir kareye sığmaz; bu nedenle yeni Surface daha büyüktür: 45 derece döndürülmüş gemi 90'a 90 pikseldir. Görseli eski sol üst köşesine blit ederseniz ortası aşağı ve sağa kayar; döndürme, geminin pencerenin içinde yalpalamasına neden olur.
Bunun yerine ortasını olduğu yerde tutun. Döndürülmüş görselden aynı noktada ortalanmış bir Rect isteyin:
rotated = pygame.transform.rotate(ship, angle)
rotated_rect = rotated.get_rect(center=(320, 240))
screen.blit(rotated, rotated_rect)Her karede orijinal ship görselini angle değerinin tamamı kadar döndürün. Geminin yönü angle içindeki sayıdır ve görsel bu sayıdan oluşturulur.
Görev
Orta- Döngüden önce
angle = 0yap. - Sol tuşunu basılı tutmak, her karede
angledeğerini 3 artırır (saat yönünün tersine); Sağ tuşunu basılı tutmak ise 3 azaltır. - Her karede
shipnesnesinianglekadar döndür ve sonucu merkezi(320, 240)olacak şekilde çiz.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Turn the Ship")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_rect = ship.get_rect(center=(320, 240))
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, ship_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