Jak to mám udělat, aby můj pygame animace postav stejné velikosti, pokud některé z nich jsou různé velikosti?

0

Otázka

V okamžiku, kdy jsem se snažil kódu ve skoku animace pro mou hru. Jsem se podařilo dostat na lyžích animace funguje, ale obrázky jsou v různých velikosti na moje další animace. Animace jsou všechny v pořádku až na ty velikosti. Dostal jsem postavu, které jsem chtěla použít z tohoto odkazu.

Tady je můj kód pro načítání animace:

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)

To je to, co znak vypadá, když skákání na chvíli. To je to, co znak vypadá jako normálně.

Snažil jsem se změnit velikost skoku obrázky oddělit do jiné obrázky, ale je to buď stejné velikosti nebo větší.

Má někdo nějaké nápady na to, co je problém?

Díky za každou pomoc předem :)

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

Nejlepší odpověď

0

Musíte použít jeden faktor měřítka pro všechny obrázky.

Definovat faktor měřítka (např.: 0.5):

image_scale = 0.5

Napište funkci, která váhy obraz faktor měřítka:

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

Použití funkce a faktor měřítka měřítko všech snímků. např.:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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