如何从点数组中制作texture2d。(XNA,Farseer Physics Engine)

时间:2013-11-06 08:39:57

标签: xna polygon texture2d farseer

我使用Farseer Physics Engine进行泵模拟。 在那里,它们总是使用texture2d格式。 但是泵的形状只给出了Point(x,y)数组。

我想从那个点数组中创建polygon或texture2d。

PolygonTools.CreatePolygon方法需要int []和width,而不是point []。

我不知道如何通过int []和width来制作多边形。

请帮忙。

1 个答案:

答案 0 :(得分:0)

所以你希望从数组创建一个texture2d ......嗯...我会尝试解释我将如何尝试这个,这不是工作示例只是提示如何做到这一点。

首先你需要找到with和height,所以找到max X和max Y来创建空白纹理。

Texture2D blankTexture = new Texture2D(GraphicsDevice, maxX, maxY, false, SurfaceFormat.Color);

然后遍历纹理并设置数组中的像素颜色

for(int i=0; i<blankTexture .width; i++)
{
  for(int j=0; j<blankTexture .height; j++)
  {
    // pixel = texture.GetPixel(i, j); 
    // loop over array, and if pointX in array = i and pointY in array = j then
    pixel.Color = Color.White; //
  }
}

我认为这是相当昂贵的方式......但它可以工作。