J'ai une fonction qui charge une feuille de sprite, trouve un bloc de sprites, puis met chaque sprite dans une liste. Avant d'ajouter un sprite dans la liste, il va le faire apparaître sur l'écran. Une fois le chargement des sprites terminé, il parcourra alors la liste, en mélangeant chaque sprite au fur et à mesure. Les deux ensembles de blocs doivent être identiques à, mais le premier sprite est supprimé de la liste et le dernier est dupliqué. Les deux ensembles de blits ressemblent à ceci:une liste de sprites pygame perd son premier élément, et gagne un doublon de la dernière
Chaque sprite est blittée dans l'ordre qu'il a été ajouté à la liste, de gauche à droite, de haut en bas, de sorte que le premier sprite est en haut à gauche un, et le dernier est en bas à droite.
Voici la fonction qui charge les sprites:
def assembleSprites(name, screen):
"""Given a character name, this function will return a list of all that
character's sprites. This is used to populate the global variable spriteSets"""
spriteSize = (35, 35)
spritesheet = pygame.image.load("./images/patchconsprites.png")
sprites = []
start = charCoords[name]
char = list(start)
image = pygame.Surface((35,35))
# load each sprite and blit them as they're added to the list
for y in range(5):
char[0] = start[0]
for x in range(9):
rect = (char[0], char[1], char[0]+spriteSize[0], char[1]+spriteSize[1])
image.blit(spritesheet, (0,0), rect)
image = image.convert()
colorkey = image.get_at((0,0))
image.set_colorkey(colorkey, RLEACCEL)
screen.blit(image, (x*40, y*40))
pygame.display.update()
sprites.append(image)
char[0] += spriteSize[0]+2
char[1] += spriteSize[1]+2
# check that the list was constructed correctly
count = 0
for y in range(6,11):
for x in range(9):
screen.blit(sprites[count], (x*40,y*40))
count += 1
pygame.display.update()
return sprites
Tout le monde voir comment je vissant la liste des?
Voyez ce qui est réellement à l'intérieur des 'sprites'. – SilentGhost
@SilentGhost: Ils s'affichent de la même manière que dans l'image, juste un à la fois. – Max
Un code autonome (+ un lien vers le fichier png source) peut s'avérer utile. – tokland