Uçtuğun Yöne Dön
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 7 / 36.
Gemi dosyasında yukarıyı gösterir. rotate(ship, -90) ile döndürüldüğünde sağa bakar; bu da yana doğru uçan bir gemi için uygundur. Sola uçarken sola bakmalıdır.
pygame.transform.flip(image, flip_x, flip_y) size aynalanmış bir kopya verir. True, False soldan sağa aynalar; False, True yukarıdan aşağıya aynalar.
ship_right = pygame.transform.rotate(ship, -90)
ship_left = pygame.transform.flip(ship_right, True, False)Her iki görsel de döngüden önce bir kez oluşturulur. Oyun daha sonra hangisinin gösterileceğini bir değişkende saklar ve tuşlar bunu değiştirir:
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
image = ship_leftHer karede image görselini çiz. Hiçbir tuşa basılı tutulmadığında image son değerini korur; böylece gemi en son uçtuğu yöne bakmayı sürdürür.
Görev
Orta- Döngüden önce,
ship_rightöğesini soldan sağa çevrilmiş hâliyleship_leftolarak oluştur. - Döngüden önce
image = ship_rightyap. - Sol tuşu basılı tutmak
image = ship_leftyapar; Sağ tuşu basılı tutmakimage = ship_rightyapar. Hareket aynı kalır. imageöğesiniship_rectkonumunda çiz.
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Face the Way You Fly")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_right = pygame.transform.rotate(ship, -90)
ship_rect = ship_right.get_rect(center=(320, 240))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
if keys[pygame.K_RIGHT]:
ship_rect.x += 5
ship_rect.clamp_ip(screen.get_rect())
screen.fill((20, 22, 40))
screen.blit(ship_right, ship_rect)
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