Я хочу разделить свою игровую сетку на массив прямоугольников. Каждый прямоугольник 40x40 и существует 14 прямоугольников в каждом столбце с в общей сложности 25 столбцами. Это покрывает игровую область 560x1000.
Это - код, который я настроил для создания первого столбца прямоугольников на игровой сетке:
Rectangle[] gameTiles = new Rectangle[15];
for (int i = 0; i <= 15; i++)
{
gameTiles[i] = new Rectangle(0, i * 40, 40, 40);
}
Я вполне уверен, это работает, но конечно я не могу подтвердить это, потому что прямоугольники не представляют на экране для меня для физического наблюдения их. То, что я хотел бы сделать для отладки целей, должно представить границу или заполнить прямоугольник цветом, таким образом, я вижу его на самой игре, только чтобы удостовериться, что это работает.
Существует ли способ заставить это произойти? Или какой-либо относительно простой способ, которым я могу просто удостовериться, что это работает?
Большое спасибо.
Сначала создайте для прямоугольника белую пиксельную текстуру размером 1x1:
var t = new Texture2D(GraphicsDevice, 1, 1);
t.SetData(new[] { Color.White });
Теперь вам нужно отрендерить прямоугольник - предположим, что прямоугольник называется прямоугольником
. Для рендеринга заполненного блока это очень просто - убедитесь, что для оттенка Color
установлен тот цвет, который вам нужен. Просто используйте этот код:
spriteBatch.Draw(t, rectangle, Color.Black);
Для границы он более сложный. Вы должны нарисовать 4 линии, составляющие контур (прямоугольник здесь r
):
int bw = 2; // Border width
spriteBatch.Draw(t, new Rectangle(r.Left, r.Top, bw, r.Height), Color.Black); // Left
spriteBatch.Draw(t, new Rectangle(r.Right, r.Top, bw, r.Height), Color.Black); // Right
spriteBatch.Draw(t, new Rectangle(r.Left, r.Top, r.Width , bw), Color.Black); // Top
spriteBatch.Draw(t, new Rectangle(r.Left, r.Bottom, r.Width, bw), Color.Black); // Bottom
Надеюсь, это поможет!