Как сделать texture2d из точечного массива.(XNA, Farseer Physics Engine)

Я использую Farseer Physics Engine для симуляции насоса. В этом примере они всегда используют формат texture2d. Но эта форма насоса задается просто Point(x,y) Array.

Я хочу сделать полигон или texture2d из этого массива точек.

Метод PolygonTools.CreatePolygon должен содержать int[] и width, а не point[].

Я не знаю, как сделать многоугольник по int[] и ширине.

пожалуйста помоги.

1 ответ

Решение

Так что вы хотите создать texture2d из массива... хм... я постараюсь объяснить, как я это попробую, это не рабочий пример, просто подсказка, как это сделать.

сначала вам нужно найти с помощью и 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; //
  }
}

Я думаю, что это довольно дорогой процесс... но это может сработать.

Другие вопросы по тегам