你好我正在尝试用瓷砖创建一个地图,允许我将它们单独放置在地图上的特定区域。正如你在这张图片中看到的那样
:
使用数字将瓷砖放置在特定区域,我在视觉工作室使用Monogame,我无法找到这样做的方法/解释,这不是一个容易回答的问题,因为可以给出很多选项,但任何事都会赞赏。
编辑:
我也试图放置一块瓷砖,用单个瓷砖制作道路。
答案 0 :(得分:0)
您可以从下面的二维数组中构建它,最重要的部分是绘图上图块的位置。
x * texture.Width
确保在x轴上一个接一个地绘制纹理。
y * texture.Height
确保您将纹理线一个画在彼此之下。
tilesPosition[y][x]
包含将要绘制的图块的位置(在您的情况下为0到18)
var textures = new Texture2D[]
{
Content.Load<Texture2D>("texture0"),
// others
Content.Load<Texture2D>("texture18")
}
int[][] tilesPosition = new int[][]
{
new[] {0, 0, 0, 0, 0, 0, 0},
// others
new[] {0, 0, 1, 2, 3, 4, 0},
// others
new[] {18, 18, 18, 18, 18, 18, 18}
};
for (int y = 0; y < tilesPosition.Length; y++)
{
for (int x = 0; x < tilesPosition[x].Length; x++)
{
var texture = textures[tilesPosition[y][x]];
Vector2 position = new Vector2(x * texture.Width,y * texture.Height)
spriteBatch.Draw(texture, position, Color.White);
}
}
迭代将如下所示。