2015-07-02 32 views
0

有一段时间我试图创建一些基于MonoGame的简单游戏,但我遇到了一个问题。从spritesheet获取框架宽度

我在spritedatabase中发现了一些spritesheet,但当前图纸上的一些图像宽度不同/ Example /。我的意思是,在第三行/从上到下,运行图像所在的位置,与第四行的宽度不同。

我脑海中弹出的第一件事就是复制 - 粘贴并调整所有图像的大小,但我确信有一种更加微妙的方法可以做到这一点。

所以问题是:如何在绘制之前获取当前帧的大小?我应该使用一些图像识别算法吗?

回答

0

显然,您提供的精灵表没有额外的信息,可以让您无需复杂的粘贴。首先你需要知道每一帧的来源,其次是它的尺寸。精灵表中的尺寸可能会有所不同,但在这种情况下,只有正确的原点才能保证精灵总是正确定位。请注意,此类数据库中的精灵表(通常会被忽略版权)通常会在Photoshop或其他类似软件中手动打包。这不幸的是需要一些认真的努力来处理它们。所以要使用它们,你应该提取所有的框架,将它们放在图层中,并确保逻辑原点位于相同的位置(对于侧滚动和双足角色来说,它可以指向脚之间)。

无论如何,我会手动提取每个精灵。您也可以在ImageMagick中使用segment_image script。但是,体力劳动的手工工作将会是相同的,甚至更少的努力。

然后,我会放大画布所有extacted帧到最大的框架尺寸。将其包装到spritesheet中,导入到Piskel,并重新定位每个帧以具有适当的原点。最后的工具是坦率无关的,因为你也可以使用Flash或Photoshop。

+0

谢谢你的回答。我也认为这将是方式,但如果你问/你是否找不到你自己的信息,总是会更好。 –