微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决transform.scale() 不适用于新对象

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

   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 

解决方法

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

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。