drawメソッドは、ものを前から後ろに描画するので、コードで最初に描画されるものが前になり、最後が前になると思いました。だから、私は配列からタイルの背景を描画しようとしていますが、その一部は他のすべての前にあり、他の一部は他のすべての後ろにあります。これを修正するにはどうすればよいですか?
私の描画コード:
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(BackColor );
spriteBatch.Begin(SpriteSortMode.FrontToBack,BlendState.AlphaBlend,null,null,null,null,m_Camera.Transform(graphics.GraphicsDevice ));
Draw1();
base.Draw(gameTime);
}
これが描画方法です
public void Draw1()
{
DrawText();
topwall.Draw(spriteBatch);
bottomwall.Draw(spriteBatch);
for (int i = 0; i < wallsize; ++i)
{
//new GameObject(Tech[i].texture, Tech[i].Position );
Tech[i].Draw(spriteBatch);
}
Door1.Draw(spriteBatch);
Door2.Draw(spriteBatch);
//playerOne.Draw(spriteBatch);
//playerTwo.Draw(spriteBatch);
ball.Draw(spriteBatch);
drawdirt();
spriteBatch.End();
}
これは背景を描きます
public void drawdirt()
{
for (int i = 0; i < world.GetUpperBound(0); ++i)
{
for (int n = 0; n < world.GetUpperBound(1); ++n) { world[i, n].Draw(spriteBatch); }
}
}