Python 使用循环创建同一图像的多个实例,是否可以独立移动图像的每个实例?

Python 使用循环创建同一图像的多个实例,是否可以独立移动图像的每个实例?,python,pygame,Python,Pygame,我在pygame中有一个图像,该图像的多个实例在for循环中调用。有没有一种方法可以独立地移动图像的每个实例,而不用按原样移动代码中的其他实例?或者我必须单独加载图像的单独实例吗 def pawn(self): y_pos = 100 self.image = pygame.transform.scale(pygame.image.load('pawn.png'), (100,100)) for x_pos in range(0,8,1): pieceN

我在pygame中有一个图像,该图像的多个实例在for循环中调用。有没有一种方法可以独立地移动图像的每个实例,而不用按原样移动代码中的其他实例?或者我必须单独加载图像的单独实例吗

def pawn(self): 
    y_pos = 100
    self.image = pygame.transform.scale(pygame.image.load('pawn.png'), (100,100))
    for x_pos in range(0,8,1):
        pieceNum = x_pos
        screen.blit(self.image, (x_pos*100, y_pos))
我建议使用和:

创建一个派生自
pygame.sprite.sprite
的类:

classmysprite(pygame.sprite.sprite):
定义初始(自我、图像、位置x、位置y):
super()。\uuuu init\uuuuu()
self.image=image
self.rect=self.image.get_rect()
self.rect.topleft=(位置x,位置y)
加载图像

image=pygame.transform.scale(pygame.image.load('pawn.png'),(100100))
创建精灵列表

imageList=[MySprite(图像,x位置*100100)用于范围(0,8,1)内的x位置]
并创建一个精灵组:

group=pygame.sprite.group(imageList)
组的精灵可以通过
绘制。
screen
是由
pygame.display.set_mode()
创建的曲面):

group.draw(屏幕)
精灵的位置可以通过更改
.rect
属性的位置来更改(请参阅)

e、 g

imageList[0]。rect=imageList[0]。rect.move(move\u x,move\u y)
当然,移动可以通过class
MySprite
的方法完成:

e、 g

classmysprite(pygame.sprite.sprite):
# [...]
def移动(自身、移动x、移动y):
self.rect=self.rect.move(move_x,move_y)
imageList[1]。移动(01100)

非常感谢,解释得很好!非常感谢。:)