Comment puis-je faire mon pygame animations des personnages de la même taille si certains d'entre eux sont de tailles différentes pour commencer?

0

La question

Pour le moment, je suis en train de coder dans un saut d'animation pour mon jeu. J'ai réussi à obtenir le saut à l'animation de travail, mais les images sont à une taille différente de mes autres animations. Les animations sont tous bien sauf pour les tailles. J'ai eu le caractère que j'allais utiliser à partir de ce lien.

Voici mon code pour le chargement des animations:

player_size = (80, 80)
for n in range(0, 10):
    img_right = pygame.image.load(f'img/Character animations/Jump Start/Jump Start_{n}.png').convert_alpha()
    img_right = pygame.transform.smoothscale(img_right, player_size)
    img_left = pygame.transform.flip(img_right, True, False)
    self.images_jump_start_right.append(img_right)
    self.images_jump_start_left.append(img_left)
for n in range(0, 12):
    img_right = pygame.image.load(f'img/Character animations/Idle/Idle_{n}.png').convert_alpha()
    img_right = pygame.transform.smoothscale(img_right, player_size)
    img_left = pygame.transform.flip(img_right, True, False)
    self.images_idle_right.append(img_right)
    self.images_idle_left.append(img_left)
for n in range(0, 16):
    img_right = pygame.image.load(f'img/Character animations/Walk/Walk_{n}.png').convert_alpha()
    img_right = pygame.transform.smoothscale(img_right, player_size)
    img_left = pygame.transform.flip(img_right, True, False)
    self.images_run_right.append(img_right)
    self.images_walk_left.append(img_left)

C'est ce que le personnage ressemble quand sautant à l'heure actuelle. C'est ce que le personnage ressemble normalement.

J'ai essayé de changer la taille du saut d'images séparées pour les autres images, mais il est de la même taille ou plus grand.

Quelqu'un a une idée sur ce qui est le problème?

Merci pour toute aide à l'avance :)

animation drawing pygame python
2021-11-23 21:20:04
1

La meilleure réponse

0

Vous devez utiliser un facteur d'échelle pour toutes les images.

Définir un facteur d'échelle (par exemple: 0.5):

image_scale = 0.5

Écrire une fonction qui met à l'échelle d'une image par un facteur d'échelle:

def scale_surface(surf, scale):
    width = round(surf.get_width() * scale)
    height = round(surf.get_height() * scale)
    return pygame.transform.smoothscale(surf, (width, height))

Utilisez la fonction et le facteur d'échelle à l'échelle de toutes les images. par exemple:

img_right = scale_surface(img_right, image_scale)
2021-11-23 21:28:58

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................