Come faccio a rendere il mio pygame animazioni dei personaggi della stessa dimensione se alcuni di loro sono diverse dimensioni per iniziare?

0

Domanda

Al momento sto cercando di codice in un salto di animazione per il mio gioco. Sono riuscito a ottenere il salto di animazione di lavoro, ma le immagini sono in una dimensione diversa da altre mie animazioni. Le animazioni sono tutte bene, tranne che per le dimensioni. Ho avuto il carattere stavo per usare da questo link.

Ecco il mio codice per caricare le animazioni:

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)

Questo è ciò che il personaggio assomiglia a quando il salto al momento. Questo è ciò che il personaggio si presenta come normalmente.

Ho provato a cambiare la dimensione del salto immagini separate per le altre immagini, ma è la stessa dimensione o più grande.

Qualcuno ha qualche idea su che cosa è il problema?

Grazie per qualsiasi aiuto in anticipo :)

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

Migliore risposta

0

È necessario utilizzare un fattore di scala per tutte le immagini.

Definire un fattore di scala (ad es.: 0.5):

image_scale = 0.5

Scrivere una funzione che ridimensiona un'immagine da un fattore di scala:

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

Utilizzare la funzione e il fattore di scala di scala di tutte le immagini. ad esempio:

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

In altre lingue

Questa pagina è in altre lingue

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