分隔精灵表中图像的最佳方法是什么?
我在找一个网站或者其他什么工具,可以用来把精灵图从图 sheet 中分离出来。请告诉我你们有什么好主意。我之前用过一个叫 sprite splitter 的下载工具,但它现在不支持包含超过 10 张图片的精灵图 sheet 了……谢谢!
我还想补充一下,我一直在使用 spriters-resources 来获取我的精灵图 sheet。
1 个回答
2
在pygame中,你可以加载一张包含多个角色图像的图片,然后利用这张图像创建多个子图像,就像使用不同的图片一样。这样,你就不需要把一张大图拆分成很多小文件了。
当然,你也可以使用pygame的功能将任何子图像保存为单独的文件。
编辑:
这是一张用于动画的图片。
import pygame
import pygame.locals
pygame.init()
screen = pygame.display.set_mode((300,300))
# one image -> 7 subsurfaces
sheet = pygame.image.load('explosed-sprite.png').convert_alpha()
imgs = []
for x in range(7):
imgs.append( sheet.subsurface((20*x,0,20,20)) )
current_img = 0
# clock - FPS
clock = pygame.time.Clock()
# mainloop
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
# next image modulo 7
current_img = ( current_img + 1 ) % 7
screen.fill( (0,0,0) )
screen.blit( imgs[current_img], (150-10,150-10) )
pygame.display.flip()
clock.tick(12)
# save subsurfaces as separated images
for x in range(7):
name = 'frame_' + str(x) + '.png'
pygame.image.save( imgs[x], 'frame_' + str(x) + '.png' )
print name, 'saved'
# the end
pygame.quit()
将这张图片保存为 explosed-sprite.png
,放在与python脚本同一个文件夹里。