Je configurais cette liste où il avait des images (images sont des sprites) chargées dans. J'essayais de créer cette boucle où elle réduisait toutes les images de cette liste.
walkLeft = [pygame.image.load('Moving1.png'), pygame.image.load('Moving2.png'), pygame.image.load('Moving3.png'), pygame.image.load('Moving4.png'), pygame.image.load('Moving5.png'), pygame.image.load('Moving6.png'), pygame.image.load('Moving7.png'), pygame.image.load('Moving8.png'), pygame.image.load('Moving9.png')] walkRight = [] for i in walkLeft: walkRight.append(pygame.transform.flip(i, True, False)) for x in walkLeft: pygame.transform.smoothscale(x,(372, 493))
3 Réponses :
Je ne suis pas sûr de Pygame lui-même, comme je ne l'ai jamais utilisé, mais je pense que le problème est que La façon dont vous voudrez probablement y aller à ce sujet est en itérant par index < / em> au lieu de par élément em> et remplacez effectivement des éléments à mesure que vous allez: p> Vous pouvez également ignorer une étape et simplement recréer toute la liste Utilisation des compréhensions de la liste, qui rendrait votre script plus idiomatique dans l'ensemble: p> pygame.transform.smoothscale () code> n'est pas transformateur em> - il ne change pas le
x code> que vous le nourrissez, mais génère plutôt une version modifiée sans modifier l'original. Vous pouvez voir un comportement similaire dans
pygame.transform.flip (i, true, false)) code> - chaque itération, elle produit une copie modifiée de
i code>, que vous apportez à < Code> Walkright Code>, mais cela ne change pas le
i code> que vous avez commencé avec.
pygame.transform.smoothscale retourne un Nouveau objet, vous devez donc le retourner à une valeur:
for x in range(len(walkLeft)): walkLeft[x] = pygame.transform.smoothscale(x,(372, 493))
Dans votre solution x code> est un entier -
.smoothscale () code> ne prend pas un entier pour son premier argument. Si vous avez besoin d'un élément et de son index, vous pouvez utiliser énumérer .
pygame.transform.smoothscale () < / code>
ne peut pas traiter les listes.
La méthode échoue à une image qui est transmise par le paramètre et renvoie une nouvelle image mise à l'échelle par la valeur de retour. La valeur de retour on peut être réaffectée à la liste.
Vous devez le faire dans une boucle: p>
soit: p> ou en une ligne : p>
Que dois-je faire quand quelqu'un répond à ma question?