Любой способ справиться с обрезкой изображений спрайтов - Python / Pygame - PullRequest
0 голосов
/ 12 января 2020

Я хотел бы использовать некоторые изображения для своих спрайтов в Pygame, в то время как мне нужно много изображений для анимации, все они не обрезаны по краям реального изображения. Поэтому мне нужно обрезать каждое изображение или использовать спрайт-листы. Есть ли другой способ сделать это быстро?

1 Ответ

0 голосов
/ 15 января 2020

Я недавно создал шахматную программу, в которой использовал спрайт-лист, включающий все шахматные фигуры. Сначала я импортировал таблицу спрайтов и преобразовал ее в нужный мне размер (SQW - это число каждого квадрата на шахматной доске). Затем я обрезал его во вложении для l oop, чтобы получить список изображений. Мне нужно было вложенное значение для l oop, поскольку спрайт-лист содержал 2 строки с изображениями по 6 штук, черно-белыми по каждой строке. Код выглядит примерно так:

SPRITE = pygame.transform.smoothscale(pygame.image.load('imgs/pieces.png'), (int(SQW*6), int(SQW*2)))
PIECES = [None] * 12
for i in range(2):
    for j in range(6):
        PIECES[j + i*6] = pygame.Surface.subsurface(SPRITE, (j*SQW, i*SQW, SQW, SQW))
...