0

Texture2D の 2 次元配列があり、この配列にマップのさまざまな部分が保持されています。ゲームを実行すると、マップは正しく描画されますが、何らかの理由で、配列 [0, 0] テクスチャが、プレーヤー テクスチャとマウス テクスチャを含むすべてのテクスチャと重なっています。他のすべてのテクスチャは、マウスとプレーヤーのテクスチャがマップに正しくオーバーラップするため機能します。

ネストされた for ループを使用してマップ テクスチャが一緒に描画されているので、今は本当に混乱しています。

これは、ゲームの Draw メソッドで呼び出すマップの 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()
4

2 に答える 2

2

それらが描画される順序を逆にしてみてください。SpriteSortMode.Deferred

于 2013-05-17T22:05:40.323 に答える