任何处理裁剪精灵图像的方法 - Python/Pygame
Any way to deal with cropping sprite images - Python/Pygame
我想在 pygame 中为我的精灵使用一些图像,而我需要许多图像作为动画,它们都没有被裁剪到实际图像的边缘。所以要么我需要裁剪每一个图像,要么我可以使用 spritesheets。有没有其他方法可以快速做到这一点?
我最近创建了一个国际象棋程序,其中我使用了一个包含所有棋子的 spritesheet。首先,我导入了 spritesheet 并将其转换为我需要的正确大小(SQW 是棋盘上每个方格的大小)。然后我在嵌套的 for 循环中裁剪它以获得一张图片列表。我需要一个嵌套的 for 循环,因为 spritesheet 包含 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))
我想在 pygame 中为我的精灵使用一些图像,而我需要许多图像作为动画,它们都没有被裁剪到实际图像的边缘。所以要么我需要裁剪每一个图像,要么我可以使用 spritesheets。有没有其他方法可以快速做到这一点?
我最近创建了一个国际象棋程序,其中我使用了一个包含所有棋子的 spritesheet。首先,我导入了 spritesheet 并将其转换为我需要的正确大小(SQW 是棋盘上每个方格的大小)。然后我在嵌套的 for 循环中裁剪它以获得一张图片列表。我需要一个嵌套的 for 循环,因为 spritesheet 包含 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))