我有一个180宽90高的精灵。它显示了火箭的2个视图 - 一个发动机发射,一个发射不发射。我需要能够只显示一个船的视图,同时也可以将其旋转到任何角度。我可以以任何角度显示整个180 x 90精灵,但无法弄清楚如何在旋转和blitting之前将左手或右手图像复制到90x90矩形。这是我的代码。 ship_image是包含2个船只的180x90精灵,我的transform.chop用于在ship3_image中创建一个只有一艘船的新90x90图像,其余代码将其旋转并显示它(我故意不清除我的显示表面表明我的精灵真的围绕它的中心旋转)。 那么为什么我没有从chop中获得90 x 90精灵或者我用什么命令来获得90 x 90精灵?
感谢您的帮助/想法! 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)
答案 0 :(得分:0)
我的猜测:
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