Xna 绘制顺序无法正常工作

2024-03-15

我有一个 Texture2D 的二维数组,它在该数组中保存地图的不同部分。不过,我有一个问题,当我运行游戏时,地图绘制正确,但由于某种原因,数组 [0, 0] 纹理重叠了我的所有纹理,包括我的玩家纹理和鼠标纹理。当我的鼠标和玩家纹理正确重叠地图时,所有其他纹理都会起作用。

我现在真的很困惑,因为地图纹理是使用嵌套的 for 循环绘制在一起的。

这是我在游戏的 Draw 方法中调用的地图的绘制方法:

public void Draw()
{
    // Draws the Map from a 2D Array
    for (int row = 0; row < mapTexture.GetLength(0); row++)
    {
        for (int col = 0; col < mapTexture.GetLength(1); col++)
        {
            spriteBatch.Draw(mapTexture[row, col], mapPosition[row, col], Color.White);
        }//end for
    }//end for
}//end Draw()

我的实际绘制方法:

protected override void Draw(GameTime gameTime)
{
    GraphicsDevice.Clear(Color.CornflowerBlue);

    spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
    spriteBatch.Draw(mouseIcon, mouseIconPosition, Color.White);
    player.Draw();
    map.Draw();
    spriteBatch.End();

    base.Draw(gameTime);
}//end Draw()

尝试颠倒它们的绘制顺序,并使用SpriteSortMode.Deferred

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xna 绘制顺序无法正常工作 的相关文章

随机推荐