transform.scale() 不适用于新对象

时间:2021-04-15 20:53:33

标签: python pygame

所以我试图为屏幕上的多个对象做一个粘液动画,一个对象一切正常,当我以某种方式添加另一个对象时,一些图像被转换回两个对象的原始大小,即使一切正常完美地从一个对象开始。类构造函数:

   def __init__(self,image=[],rate=ra.randint(1,6),anim=0,mov=0):
    self.mov=mov
    self.img=image
    self.rate=rate
    self.anim=anim
    for i in range(1,9):
        self.img+=[pygame.image.load("../graphics/enemies/slimes/slime_blue/slime_blue"+str(i)+".png")] #im adding every image in a list for each object here
        self.img[i-1]=pygame.transform.scale(self.img[i-1],(dis[0]/25,dis[0]/25)) #im adjusting every image to the size i want
    Enemy.__init__(self,rarity=ra.random(),strength=ra.randint(2,19),defence=ra.randint(0,10),life=ra.randint(20,50),speed=ra.randint(1,10))

添加新对象的过程:

if ra.randint(1,50)==1:
        slimes+=[Slime()]

动画过程:

def animate(self,pos):      
        box_slime=screen.blit(self.img[self.anim],pos)
        if self.anim<len(self.img) -1 :
            self.anim+=1
        else:
            self.anim=0
        return box_slime 

1 个答案:

答案 0 :(得分:0)

这解决了它,我不太确定为什么但是是的。

for i in range(1,9):
    img=pygame.image.load("../graphics/enemies/slimes/slime_blue/slime_blue"+str(i)+".png")
    img=pygame.transform.scale(img,(dis[0]/25,dis[0]/25))
    self.img.append(img)