pygame精灵组不移动



我想制作一个高级动画类,但pygame的文档对我来说有点混乱

我写了一个类来动态加载和更新子目录

中的图像
class LoadSprite():
def __init__(self, path, rect):
self.path = path
self.rect = rect
self.index = 0
def load_images(self):
extend =[]
images = [pygame.image.load(self.path) for self.path in glob.glob(self.path+"\*.png")]//load images
for tile in images:
tile = pygame.transform.scale(tile, (self.rect.w, self.rect.h))//resized images
tile.set_colorkey((0,0,0))
rect = tile.get_rect()
extend.append(MySprite(tile,rect))//add Sprite object
return extend
def update(self):
group = self.load_images() **call load_images function**
if self.index >= len(group):
self.index = 0
self.image = group[self.index]
self.index += 1

class MySprite(pygame.sprite.Sprite):#Sprite class
def __init__(self,image,rect):
super(MySprite, self).__init__()
self.image = image
self.rect = rect

,终于

while True:
sprite = LoadSprite('Tree',pygame.Rect(100,100,200,200))
group = pygame.sprite.Group(sprite.load_images())
group.update()
group.draw(screen)

我没有得到一个错误,但我只能画在屏幕上的第一个图像我错过了更新功能的东西还是有一些其他错误在我的代码?

谢谢你的关心。

在每一帧中重新创建GroupSprites。必须在应用程序循环之前创建一次对象:

sprite = LoadSprite('Tree',pygame.Rect(100,100,200,200))
group = pygame.sprite.Group(sprite.load_images())
while True:
group.update()
group.draw(screen)

最新更新