【发布时间】:2013-12-16 19:53:51
【问题描述】:
假设我有一个Texture2D,其中包含一个角色的动画片段。该条带的底线 有 个特定颜色的点,这种颜色在条带的其他任何地方都没有使用,在每个精灵的开始和结束处(意思是,在底部有一个点)每个精灵前后的空白行)。
我想裁剪每个精灵之间的所有空白行,从而使一个精灵的结尾重叠成为另一个精灵的开始(意思是,让一个精灵的结束点成为下一个的起始点)。 有什么方法可以自动用 XNA 做到这一点?
基本上,从这个开始:http://i41.tinypic.com/2wdx53l.jpg(每个精灵之间都有一个空格。)
对此:http://i40.tinypic.com/10ydjde.jpg(每个精灵的开头与前一个精灵的结尾重叠。)
(红点应该在每对蓝点之间的中间,但你明白了。)
附加信息:
A.有一个 int[] 包含每个 strip(行)的开始和结束的 X 值,还有一个 List<int>[] 包含每个 sprite 的开始和结束的 X 值em> 对于每个 strip(行,每个条带单独)。
B.在每个精灵的开始和结束之间的中间还有一个点,它不会出现在空白行中。
C.每个条带都需要导出为 .png 文件(使用包含每个条带的 Texture2D 数组)。到目前为止,我可以很好地导出(裁剪)帧,但是如果有任何方法可以将它们重新装订成条带,那就太好了。
提前致谢,请原谅复杂的措辞...
【问题讨论】:
-
如果您可以发布您的 spritesheet,它会更容易理解。
-
已添加 - 抱歉图片尺寸过小。
标签: c# xna sprite crop texture2d