新的瓷砖地图

时间:2015-03-30 07:24:31

标签: c# monogame

你好我正在尝试用瓷砖创建一个地图,允许我将它们单独放置在地图上的特定区域。正如你在这张图片中看到的那样

enter image description here

使用数字将瓷砖放置在特定区域,我在视觉工作室使用Monogame,我无法找到这样做的方法/解释,这不是一个容易回答的问题,因为可以给出很多选项,但任何事都会赞赏。

编辑:

我也试图放置一块瓷砖,用单个瓷砖制作道路。

1 个答案:

答案 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);
    }
}

迭代将如下所示。

enter image description here