2016-04-12 53 views
0

içinde dönmem gerekiyor 180 derece genişliğinde 90 yüksekliğim var. Bir roketin 2 görünümünü gösterir - biri motor ateşlemeli ve bunlardan bir tanesi ateşlemiyor. Geminin sadece bir görüntüsünü gösterip, herhangi bir açıyla döndürmem gerekiyor. 180 x 90 hareketli grafiğin tamamını herhangi bir açıda görüntüleyebilirim, ancak döndürmeden ve karıştırmadan önce sol el veya sağ el görüntüsünü 90x90 rect'e nasıl kopyalayacağımı anlayamıyorum. İşte benim kodum. ship_image, içinde 2 gemi bulunan 180x90 boyutlarındaki sprite'tır. benim transform.chop, ship3_image öğesinde yalnızca bir geminin 90x90'lık yeni bir görüntüsünü oluşturmak için kullanılır ve kodun geri kalanı onu döndürür ve görüntüler (ekran yüzeyimi bilinçli olarak temizlemedim) sprite'ımın gerçekten etrafında döndüğünü göster). Peki neden 90 x 90 sprite elde etmem ya da 90 x 90 sprite almak için hangi komutu kullanıyorum?Sprite'ın bir parçasını nasıl kopyalayacağım Pygame

Yardımlarınız/görüşleriniz için teşekkür ederiz! screen shot of ships rotating

center=(200,200) #Store pos by center 
angle = 0 
while True: 
    ship2_image = ship_image #copy entire 2 ship image 
    ship3_image = pygame.transform.chop(ship2_image,[0,0,90,90])#left hand image 
    ship3_image=pygame.transform.rotate(ship_image,angle) # Rotate whole image 
    size=ship3_image.get_size() #Store size of rotated rect 

    hSize=[n/2 for n in size] #Half the size 
    pos=(center[0]-hSize[0]+200,center[1]-hSize[1]) #Subtract half the size 
    #from the center 
    frame.blit(ship3_image,pos) 
    angle += 1 
    pygame.display.update() 
fpsClock.tick(FPS) 

cevap

0

Benim tahminim:

ship2_image = ship_image.convert() # do this to all images to speed up processing 
ship3_image=pygame.transform.scale(ship_image,(90,90)) # changes the size