Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在XNA图像中间种植空白行?_C#_Xna_Sprite_Crop_Texture2d - Fatal编程技术网

C# 如何在XNA图像中间种植空白行?

C# 如何在XNA图像中间种植空白行?,c#,xna,sprite,crop,texture2d,C#,Xna,Sprite,Crop,Texture2d,假设我有一个Texture2D,其中包含角色动画的单个片段。那条带子的底线有一个特定颜色的点,一个颜色,它不在条带的任何地方使用,在每个雪碧的开头和结尾(意思是,在每一个雪碧之前和之后的空白行的底部有一个点)。 我想裁剪每个精灵之间的所有空白行,从而使一个精灵的结束重叠/强>另一个的开始(意思是,得到一个精灵的结束点作为下一个起始点)。 有没有办法用XNA自动实现这一点 基本上,从这里开始:(每个精灵和每个精灵之间都有一个空格。) 为此:(每个精灵的起点与前一个精灵的终点重叠。) (红点应该在每

假设我有一个
Texture2D
,其中包含角色动画的单个片段。那条带子的底线有一个特定颜色的点,一个颜色,它不在条带的任何地方使用,在每个雪碧的开头和结尾(意思是,在每一个雪碧之前和之后的空白行的底部有一个点)。 我想裁剪每个精灵之间的所有空白行,从而使一个精灵的结束<强>重叠/强>另一个的开始(意思是,得到一个精灵的结束点作为下一个起始点)。 有没有办法用XNA自动实现这一点

基本上,从这里开始:(每个精灵和每个精灵之间都有一个空格。)

为此:(每个精灵的起点与前一个精灵的终点重叠。)

(红点应该在每一对蓝色点之间,但你明白了。)< /P> 其他信息:

A.有一个
int[]
包含每个条带(行)开始和结束的X值,还有一个
List[]
包含每个条带(行,每个条带)每个精灵开始和结束的X值

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

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


提前谢谢,请原谅复杂的措辞…

我不知道为什么您需要精灵之间的这些点,但是如果您知道每个精灵的宽度,那么您只需要在精灵表上按顺序移动一个矩形(我认为您已经有了),加上精灵宽度减去该点的宽度。

按照您的要求,这样您应该将一个精灵的结束点作为下一个精灵的开始点。

如果您可以发布您的精灵表,这将更容易理解。添加-抱歉图像的大小非常小。这是一个想法,但是如何对
纹理2D
执行此操作?此外,点是为了帮助动画更平滑地变化,而不是寻找每个精灵开始和结束的地方。我不认为你可以在你的纹理中实际裁剪空白行,但是你应该管理绘画来完成我上面写的,以获得你的意思。我看没有别的办法了。你的目的是画那张精灵纸,不是吗?