如何在XNA中裁剪图像中间的空白行



假设我有一个Texture2D,其中包含角色动画的单个条带。条形图的底线在每个精灵的开始和结束处都有特定颜色的点,这种颜色在条形图的其他任何地方都没有使用(意味着在每个精灵前后的空白行底部都有一个点)。

我想裁剪每个精灵之间的所有空白行,从而使一个精灵的结尾与另一个的开头重叠(意思是,使一个小精灵的结束点成为下一个的开始点)。是否有任何方法可以使用XNA自动执行此操作?

基本上,从这个开始:http://i41.tinypic.com/2wdx53l.jpg(每个精灵之间都有一个空格。)

对此:http://i40.tinypic.com/10ydjde.jpg(每个精灵的开始与前一个精灵的结束重叠。)

(红点应该在每对蓝点之间的中间,但你得到了分数。)

附加信息:

A。有一个包含每个条带(行)的开始和结束的X值的int[],和一个包含每一个子画面的开始和结尾的X值(行,每个条带单独)的List<int>[]

B。在每个精灵的开始和结束之间的中间有另一个点,这些点不会出现在空白行中。

C。每个条形图都需要导出为.png文件(使用包含每个条形图的Texture2D数组)。到目前为止,我可以很好地导出帧(裁剪),但如果有任何方法可以将它们重新装订成条状,那就太好了。

提前谢谢,请原谅措辞复杂。。。

我不知道为什么你的精灵之间需要这些点,但如果你知道每个精灵的宽度,那么你只需要在精灵表上有一个按顺序移动的Rectangle(我认为你已经有了),然后加上精灵宽度减去那个点的宽度
按照你的要求,用这种方式你应该把一个精灵的结束点作为下一个的开始点。

最新更新