我认为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); }
}
}